我可以从组件未装入状态访问状态吗

时间:2020-03-28 23:07:59

标签: reactjs

首先我要通过axios获取数据并在组件Did Mount中设置我的状态,然后我想获取我的图像,但为此目的,我需要从我先前设置的状态中访问信息,但是当我记录我的状态时信息答案是不确定的。有什么方法可以在组件中进行安装,然后设置组件的状态,然后从组件中的状态进行获取。


   state = {
        info: [],
        getImage: null
    };
    componentDidMount() {
        axios
            .get(`http://localhost:4000/home/profile/${this.props.match.params.id}`)
            .then(res => {
                const info = res.data;
                this.setState({ info });
            })
            .catch(err => console.log("Some problem", err));

        console.log("personimage", this.state.info);

        axios
            .get(`http://localhost:4000/home/${this.state.info.personImage}/`, {
                responseType: "arraybuffer"
            })
            .then(response => {
                let image = btoa(
                    new Uint8Array(response.data).reduce(
                        (data, byte) => data + String.fromCharCode(byte),
                        ""
                    )
                );

1 个答案:

答案 0 :(得分:3)

setState异步。您可以阅读有关内容in the docs here

要使setState触发和状态更改后立即发生某些事情,可以传递一个回调,如下所示:

 this.setState({ info }, () => console.log(this.state.info);