我正在调用console.log作为setState的回调,看来setState不起作用。我正在尝试编写一个函数,其状态定义如下:
this.state = {
...this.props.substate
};
this.props.substate是一个对象数组,因此我正在将其转换为对象。 这是一个将状态转换回数组,删除最后一个元素然后将数组转换为对象的函数:
handleClickRem = event => {
event.preventDefault();
console.log(this.state);
const arrayFromState = Object.values(this.state);
console.log(arrayFromState);
const newArray = arrayFromState.slice(0, -1);
console.log('newArray',newArray);
const newState = {...newArray};
console.log(newState);
//newState is exactly what I want it to be
this.setState(newState, () => console.log(this.state));
};
除了最后一个控制台日志外,所有控制台日志都可以正常工作。我也在检查render()中的状态,但它似乎也没有显示状态变化。
我也做了类似的功能,该功能向状态添加了元素,并且运行良好。
我将非常感谢您的帮助和耐心:)