Я получил эту ошибку: «Обновления состояния из хуков useState () и useReducer () не поддерживают второй обратный вызов ...» при внесении изменений в мое состояние - PullRequest
0 голосов
/ 07 июня 2019

Предложение, которое я вставил в заголовок, - это то, что я получил из своего кода. Я пытаюсь изменить состояние в массиве, используя хуки, это мой код.

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>
)

}

с этим меняются первые изменения, я меняю привет на пока ... но когда я нажимаю его снова, у меня появляется эта ошибка MyContracts.js: 18

Uncaught TypeError: изменение не повторяется

1 Ответ

0 голосов
/ 07 июня 2019

Вы деструктурируете неправильно, попробуйте ниже код, который вам не нужно деструктурировать, но все же, если вы хотите попробовать, есть закомментированный код.

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

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