FlatList обновляется только после взаимодействия с пользователем - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть компонент, который получает данные от навигационных реквизитов, которые я использую для установки состояния в CDM ():

this.setState({
  data: this.props.navigation.getParam('data', 'Some Data')
})

Состояние затем используется в FlatList. Когда реквизиты меняются .. FlatList не обновляется ... Пока клиент не коснется экрана.

Я попытался поместить реквизиты прямо в FlatList:

data={this.props.navigation.getParam('data', 'Some Data')}

Я пытался использовать команду extraData:

<FlatList
   style={{ flexGrow: 1, marginTop: 10 }}
   data={this.state.data}
   keyExtractor={(item, index) => index.toString()}
   extraData={this.props.navigation.getParam('data', 'Some Data')}
   renderItem={({ item }) => {...}>

Я пытался использовать componentDidUpdate () для сброса состояния при изменении реквизита, но CDU не вызывается.

EDIT: У меня такое ощущение, что когда я добавляю предметы;Я возвращаюсь назад (navigation.goBack ()) и goBack () не обновлять состояние?я не уверен.

1 Ответ

0 голосов
/ 01 апреля 2019

Нашел его:

https://github.com/react-navigation/react-navigation/issues/922#issuecomment-344752635

По сути, это передача функции в качестве параметра и вызов этой функции для изменения состояния родительского элемента, а затем вызов goBack ()

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