Как правильно обновить предыдущий экран StackNavigator? - PullRequest
0 голосов
/ 10 мая 2018

Пример :
Допустим, у вас есть экран с элементами списка, загруженными в this.state.items.
Теперь у вас есть кнопка для перехода на новый экран.
На этомэкран, на котором вы хотите добавить элемент в этот список.
Как только вы закроете этот экран, вы вернетесь к экрану с оригинальными элементами списка.

Что лучшеспособ достижения цели обновления этого списка с помощью нового элемента?

Должно ли это быть сделано:
1. Передача на новый экран объекта this.state.
2. Вызов функции обновления на старом экране?(Возможно, функция перешла на новый экран как опора.)
3. Использовать опору StackNavigator в функции?
4. Другой способ?

Я ценю любую помощь.

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Вы должны передать обратный вызов, который обновляет состояние посредством действия навигации:

this.props.navigation.navigate('NewScreen', {
  addItem: item => this.setState(prevState => ({ items: prevState.items.concat([item]) })),
});

Затем вызовите его на новом экране, чтобы добавить элемент:

this.props.navigation.state.params.addItem(newItem);
0 голосов
/ 10 мая 2018

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

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