response-native-router-flux не вызывает перехватов жизненного цикла
С помощью:
- response-native-router-flux v3.26.1
- response-native v0.26.1
У меня есть несколько простых компонентов сцены, которые настроены так:
<Router>
<Scene key="root">
<Scene key="tabbar" tabs={true}
rightButtonImage={require('./img/settings-icon-small.png')}
onRight={Actions.settings}
>
<Scene key="tab2" icon={TabIcon} title="Component 1">
<Scene key="component1" component={Component1} title="Title 1" />
</Scene>
<Scene key="tab3" icon={TabIcon} initial={true} style={{flex:1, backgroundColor:'transparent'}} title="Component 2">
<Scene key="component2" component={Component2} title="Title 2" />
</Scene>
<Scene key="tab1" icon={TabIcon} title="Component 3">
<Scene key="component3" component={Component3} title="Title 3" />
</Scene>
</Scene>
<Scene key="settings" title="Settings" component={Settings} />
</Scene>
</Router>
Предполагается, что компоненты вкладки будут использовать параметр из AsyncStorage, чтобы решить, какой контент показывать.
Компонент "settings" выполняет простое действие, позволяя пользователю установить параметр, сохраненный в AsyncStorage. Это подтверждается как работающее, путем установки, перезагрузки приложения и проверки сохраненного значения.
Переход к компоненту "Настройки" осуществляется по ссылке в правом верхнем углу панели навигации, а затем возврат к трем основным компонентам с вкладками осуществляется простым использованием поведения кнопки "Назад" на панели навигации.
Текущие испытания и ошибки:
Проход как опора от AppRoot до сцены
- AppRoot - то, где настроено, render() имеет фрагмент кода выше
- отлично работает при начальной загрузке, но никакие последующие события жизненного цикла не запускаются, поэтому AppRoot никогда не запускается для повторной загрузки значения AsyncStorage и, таким образом, никогда не генерирует новое значение prop для передачи компонентам Scene.
Попытка прочитать AsyncStorage из независимых компонентов.
- отлично работает при начальной загрузке, но никакие последующие события жизненного цикла не запускаются, поэтому компоненты никогда не знают, когда искать снова.
Как мне это сделать?
Я делаю что-то не так в реализации?
Я делаю неправильное предположение о том, как работает RNRF?
1 ответ
Для тех, кто спотыкается здесь, я обнаружил, что один из способов сделать это до сих пор - с помощью ванильной петли Flux, чтобы поддерживать установленные компоненты в актуальном состоянии. С этой целью, я уверен, что любой вариант этого будет работать нормально (избыточность и т. Д.).
Я экспериментировал, чтобы увидеть, действительно ли действия по щелчку в RNFR будут вызывать регулярные реакции жизненного цикла, но я полагаю, что этого не происходит.
Любое дальнейшее понимание от кого-то, кто знает больше меня, пожалуйста, предоставьте!:-)