首先我要通过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),
""
)
);
答案 0 :(得分:3)
setState
是异步。您可以阅读有关内容in the docs here
要使setState
触发和状态更改后立即发生某些事情,可以传递一个回调,如下所示:
this.setState({ info }, () => console.log(this.state.info);