首页 > 解决方案 > 将 prevState 参数与 setState 中的 map 函数反应

问题描述

我想实现切换功能。(我一直使用 prevState 来执行切换操作)但是在这种情况下,如果我在 map 函数中使用 prevState。它显示“prevState 未定义”的错误。我发布了 2 个代码,第一个在没有 prevState 的情况下工作......但我想使用 prevState 来实现它,如示例所示在此处输入代码 2(但第二个代码给出了上述错误)

正确的:

  this.setState({
            rawData: this.state.rawData.map(a => {
                if(a.id === id){
                    a.completed = !a.completed
                }
                return a
            })
        })

示例 2:

this.setState((prevState)=>{
            rawData: this.state.rawData.map(a => {
                if(a.id === id){
                    a.completed = !prevState.a.completed
                }
                return a
            })
        })

标签: reactjsdictionarysetstate

解决方案


this.setState((prevState)=>({
    rawData: prevState.rawData.map(a => {
        if(a.id === id){
            a.completed = !a.completed
        }
        return a
    })
}))

试试这个。


推荐阅读