#javascript #reactjs #react-native #react-native-flatlist
#javascript #reactjs #react-native #react-native-плоский список
Вопрос:
У меня есть плоский список, и он не отображается повторно при изменении состояния. Как мне получить плоский список для повторного использования?
_renderItem = ({item}) => {
if(item=='null'){
return <Text>Item is null</Text>
}else{
return <Text>Item is not null</Text>
}
};
render(){
return(
<FlatList
data={this.state.itemList}
renderItem={this._renderItem}
/>
)
}
Комментарии:
1. Вы уверены, что происходит изменение состояния? Вы можете показать этот код?
2. Не забывайте, что
null
это не то же самое, что'null'
3. Да, я понимаю, что null — это не то же самое, что null, и состояние задается следующим образом.setState({ItemList: array})
Ответ №1:
Измените свой код на этот:
render(){
return(
<FlatList
data={this.state.itemList}
extraData={this.state}
renderItem={this._renderItem}
/>
)
}
Компоненту FlatList необходимо, чтобы ExtraData был установлен в this.state, чтобы он обновлялся при изменении.
Смотрите документацию для получения более подробной информации: https://facebook.github.io/react-native/docs/flatlist.html
Комментарии:
1. Пожалуйста, объясните в своем ответе, что вы изменили и почему это решает проблему 🙂
2. Спасибо, но все равно не сработало, когда я поместил _renderItem сверху.
3. Да, я поместил это как над методом рендеринга, так и над методом возврата.
4. В моем случае ExtraData уже находится выше renderItem, но не работает. Не могли бы вы подсказать мне возможное решение, пожалуйста?