这是我的状态:
class table extends Component {
state = {
arr: [],
numofSub: 1
};
我希望通过从数据库中获取将对象设置为具有设置状态的arr, 提取效果很好,我通过控制台对其进行了记录,但似乎无法将对象推入数组中:
componentWillMount() {
fetch('/api/items')
.then(data => data.json())
.then(inputs => this.setState({ arr: [...inputs] }));
}
答案 0 :(得分:1)
当下一个状态取决于上一个状态时,建议使用功能性setstate
版本:
componentWillMount() {
fetch('/api/items')
.then(data => data.json())
.then(inputs => this.setState(state => ({ arr: [state.arr,...inputs] })));
}
关于在setstate
之后立即记录更改,您应该在setState
's callback内部进行。因为setState
is asynchronous并且在您登录state
时可能不会更新:
this.setState(state => ({key:value}), () => {
// this is the callback, its safe to log the updated state
console.log(this.state);
});