Зачем использовать prevState для замены значения списка React JS - PullRequest
1 голос
/ 26 апреля 2020

Я просто хотел получить разъяснение по этому вопросу

state = {
    foodList: [],
    currentFoodItem: null,
}

onFoodsReceived = (foodList) => {
    console.log(foodList);
    this.setState(prevState => ({
        foodList: prevState.foodList = foodList
    }));
}

В приведенном выше коде он использует prevState для замены значения списка, когда вы можете использовать приведенный ниже код. Почему некоторые используют prevstate, в то время как другие не заменяют значение списка

onFoodsReceived = (foodList) => {
    console.log(foodList);
    this.setState({
        foodList: foodList
    }));
}

1 Ответ

0 голосов
/ 26 апреля 2020

Используется, когда мы хотим переопределить текущее состояние параметрами последнего состояния.

Из документов React:

Согласно документам React "React может пакетировать несколько вызовов setState() в одном обновлении для повышения производительности. Поскольку this.props и this.state могут обновляться асинхронно, вы не должны полагаться на их значения для вычисления следующего состояния. "

" Чтобы исправить это, используйте вторую форму setState(), которая принимает функцию, а не объект. Эта функция получит предыдущее состояние в качестве первого аргумента, а реквизиты во время применения обновления в качестве второго аргумента "

Источник .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...