Мое приложение использует Navigator для маршрутизации и переходов на экран.Как обновить компонент, когда навигатор возвращается к нему?
Первый экран имеет список предметов. Когда пользователь удаляет элемент, он открывает подробный экран, на котором пользователь может его редактировать.
Когда пользователь закончил редактирование и вернулся (функция popigator's pop()), список не отражает изменения, сделанные пользователем. Экран нужно снова загрузить, чтобы отобразить обновленный список.
Есть ли способ заставитьОбновить компонент в стеке Навигатора?
Я пробовал использовать «Навигатор onWillFocus» Navigator, я могу console.log маршрут, но не знаю, как получить ссылку на экран, который представлен маршрутом, и заставить его обновить ,
Это правильно регистрирует маршрут мы собираемся перейти к:
_onWillFocus(route) {
console.log('will transition to ' + route.name)
},
...
<Navigator
ref={(ref) => this._navigator = ref}
style={{flex:1}}
configureScene={() => Navigator.SceneConfigs.FadeAndroid}
renderScene={this.renderScene}
onWillFocus={this._onWillFocus}
/>
Не существует изменения состояния, которое должно вызывать 'render' из' ListView'? Если его нет, повторный рендеринг не должен иметь никакого эффекта и будет отображать старые данные, если вы не рендер не полагаетесь на мутации объектов, что не является способом «реагировать». –
Ввод метода console.log в режиме «render» на экране списка подтверждает, что он фактически вызывается, когда пользователь возвращается на экран. Я просто понял, что делаю что-то глупое: источник данных определялся только один раз в getInitialState, но я нигде не добавлял код для его обновления. Единственный способ обновления данных состоял в том, что весь компонент был перезагружен. – amirfl