【问题标题】:Why this.setState does not update handle delete data?为什么 this.setState 不更新句柄删除数据?
【发布时间】:2019-03-10 01:56:38
【问题描述】:

这里有任何 React 专家可以帮助我回答我在使用 react 组件时遇到的这个奇怪问题吗? 我正在尝试创建一个函数来删除数组中的项目,但是,setState 不会更新新数组,但 console.log 显示数组已正确更新并正确删除了项目。

constructor (props) {
    super (props);

    this.state = {
        data: dummyData,
        chosenData:[],
        chosenOption:{}
    }
}

onDeleteOptionButtonClick = (id, titleId) => {
    const data = this.state.data.map(item => item.id === titleId ? {...item, possibleAnswers: item.possibleAnswers.filter(i => i.id !== id)} : item)
    this.setState({ data }, () => {console.log('log of data from state', this.state.data[0].possibleAnswers)})
    console.log('log of data from data',data[0].possibleAnswers)
}

这是console.log的图片

您可以看到 const 数据正确地更新了新数组并删除了项目,但状态保持不变。 请帮忙,谢谢

【问题讨论】:

    标签: javascript reactjs setstate


    【解决方案1】:

    请在过滤器函数中使用 this.setState。

    【讨论】:

    • 在我的情况下怎么可能?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    相关资源
    最近更新 更多