Правильный подход к добавлению в FlatList

Поиск правильного или лучшего способа добавления элемента в плоский список

мой первый подход состоял в том, чтобы просто добавить элемент в состояние.. поэтому я попробовал это:

var NewObject = {};
NewObject.Name = "New Object";
this.setState({
    Data: [...this.state.Data, ...[NewObject]]
});

Однако выполнение этого приводит к тому, что все в списке должно быть прочитано, и я получаю все виды ключевых ошибок.

это this.state.Data.push(NewObject); подход? это, кажется, не позволяет перезагрузить

любая помощь будет огромной!

1 ответ

Ты можешь использовать

this.setState({Data: [...this.state.Data, newObject]})

И в flatlist есть реквизит extraData. Используйте его для уведомления flatlist о любых изменениях в его источнике данных.

<FlatList
...
extraData={this.state.Data}
...
>

this.state.Data.push (NewObject) изменяет состояние напрямую, никогда не делайте этого.

Ps Вы также можете установить родительский компонент FlatList как PureComponent для повышения производительности.

Другие вопросы по тегам