Как очистить массив в состоянии перед обновлением его усиления? - PullRequest
0 голосов
/ 08 февраля 2020

Я хочу очистить массив в состоянии перед добавлением к нему снова

this.state = {
    arrayOne = [
    {
        name: 'first n',
        last: 'last n'
    },
    {
        name: 'first Name',
        last: 'last Name'
    }
]
}

this.setState({arrayOne: []}) //not emptying the array
this.setState({arrayOne: [...arrayOne.splice()]}) //also not working

Ответы [ 2 ]

3 голосов
/ 08 февраля 2020

Почему вы говорите, что он не работает? Синтаксис выглядит нормально и должен работать

Обратите внимание, что setState - это asyn c функция, вам нужно ждать для завершения обновления, чтобы увидеть изменить.

Вы можете передать функцию обратного вызова в setState, которая будет выполняться при установке состояния, например

  this.setState({
       blah: 'something new'
    }, () => {
    console.log(this.state.blah) // will print 'something new'
 } 
}) 

Вы не увидите немедленное изменение если вы делаете это так:

this.setState({
   blah: 'something new'
})
console.log(this.state.blah) // this will print whatever 'blah' was previously set to, and not 'something new'
0 голосов
/ 08 февраля 2020

Попробуй вот так ..

this.state.arrayOne = [];
or
this.state['arrayOne'] = [];
...