React Native | JS Создать объект - PullRequest
       6

React Native | JS Создать объект

2 голосов
/ 04 августа 2020

Я использую модуль выбора в React native. Мне нужно создать для этого набор данных. Писать набор данных рукой - это нормально, но когда я распечатываю его с помощью for для списка, я получаю следующую ошибку. Какое решение?

//working
const dataset = [
    {
        value: "1",
        label: "1",
    },
    {
        value: "2",
        label: "2",
    },
    {
        value: "3",
        label: "3",
    }
]

//not working
for (let i = 0; i < 3; i++) {
    this.setState({yearList:this.state.yearList.push({value:`${i}`,label:`${i}`})})
}

ошибка

1 Ответ

1 голос
/ 04 августа 2020

В документации React говорится:

Относитесь к this.state как к неизменяемому.

Ваш pu sh будет напрямую изменять состояние, и это потенциально может привести к коду, подверженному ошибкам, даже если вы потом снова "сбрасываете" состояние. Например, это может привести к тому, что некоторые методы жизненного цикла, такие как componentDidUpdate, не сработают.

В более поздних версиях React рекомендуется использовать функцию обновления при изменении состояний для предотвращения состояний гонки:

this.setState({
  arrayvar: [...this.state.arrayvar, newelement]
})
...