startsinglescreenapp react example docs ios navigation react-native redux

ios - react - wix navigation docs



Pasar el estado de Redux a través de NavigatorIOS (2)

Estoy en el proceso de integrar Redux en una aplicación React Native. Tengo problemas para averiguar cómo pasar el estado de Redux a través de un componente NavigatorIOS.

Cuando la ejecución ingresa al componente que se muestra a continuación, el depurador muestra

props = Object {state: undefined, actions: Object} Con las acciones esperadas en el objeto actions, y estado aún indefinido ya que aún no se ha inicializado (supongo).

Sin embargo, cuando la ejecución ingresa al componente ItemIndex, el depurador muestra props = Object {navigator: Object, route: Object}

Mi implementación actual intenta pasar explícitamente el estado y las acciones, pero no se procesan: el depurador ahora muestra props = Object {navigator: Object, route: Object, state: null, actions: undefined}

class MainComponent extends Component { constructor(props) { super(props) const { actions, state } = props } render() { return ( <NavigatorIOS ref = "nav" style = {styles.navigator} initialRoute = {{ // Pass redux state into component passProps: { state: this.state, actions: this.actions }, // currently becomes { state: null, actions: undefined } title: ''Items'', component: ItemIndex }}/> ) } } module.exports = MainComponent

¿Hay alguna manera de que pueda seguir transmitiendo el estado de Redux a través de NavigatorIOS ?


Me di cuenta de que estaba dejando fuera los props parte de la cadena:

render() { return ( <NavigatorIOS ref = "nav" style = {styles.navigator} initialRoute = {{ // Pass redux state into component passProps: { state: this.props.state, actions: this.props.actions }, title: ''Items'', component: ItemIndex }}/> ) }

En realidad, esto solo funciona para el estado inicial, parece detener el cambio de estado que activa las actualizaciones de componentes para el componente initialRoute y los componentes subsiguientes.


react-native-navigation admite Redux, usa controladores nativos de vista iOS (a través de react-native-controllers en lugar de navigatorIOS) y pronto será compatible con Android. Hasta ahora, esta ha sido la mejor solución de navegación para mis necesidades.