React的setState不会更改状态并更新组件

时间:2018-06-27 14:46:03

标签: javascript reactjs setstate

我正在调用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()中的状态,但它似乎也没有显示状态变化。

我也做了类似的功能,该功能向状态添加了元素,并且运行良好。

我将非常感谢您的帮助和耐心:)

0 个答案:

没有答案