当我在状态中进行更改时,出现以下错误:“状态从useState()和useReducer()挂钩不支持第二个回调...”

时间:2019-06-07 19:35:29

标签: javascript reactjs react-hooks

我粘贴到标题中的句子是我从代码中得到的,我试图用钩子对数组中的状态进行更改,这是我的代码。

export default function card(){
 let array = [true,false]

    const [change, setChange]=useState(array)


    function toggleIcon() {
        setChange(
            ...change,
            change[0]=!change[0]
        )
 console.log(change)
     }
return(
</Fragment>
    { change[0] ? (<p>hi</p>): (<p>bye</p>)}
</Fragment>
)

}

这是我改变了firts,我改变了嗨,再见...但是当我再次单击它时,y得到了这个错误MyContracts.js:18

  

未捕获的TypeError:更改不可迭代

1 个答案:

答案 0 :(得分:0)

您错误地进行了销毁,请尝试在不需要进行销毁的代码下面尝试,但是如果您想尝试的话,也可以使用带注释的代码。

function toggleIcon() {
        //let newState = [...change];
        //newState[0] = !change[0];
        //setChange(newState);

        change[0]=!change[0]
        setChange(change);
        console.log(change)
     }