React-Navigation如何导航到Redux中的路线

时间:2019-01-05 00:41:16

标签: react-native redux react-navigation

我是新来对本机与redux反应的。我正在使用react native + redux(与redux-thunk)+ react-navigation。

我在redux动作中执行了一个操作,并打算调用一个反应导航路线。

export const storeClient = (client) => {

  return async dispatch => {
    ....

    //does not work within action redux
    //this.props.navigation.navigate('ListCliente');  

  }
}

react-navigation文档中有以下信息:

警告:在即将于2018年秋季发布的下一个主要版本的React Navigation中,我们将不再提供有关如何与Redux集成的任何信息,并且它可能会停止工作。 >

反应导航是否提供解决此问题的方法?有人可以告诉我吗?我该如何使用react-navigation在动作中引导路线

编辑

将导航作为参数在redux中使用是否是一种好习惯?

我的组件

this.props.storeCliente(this.props.navigation, client)

我的动作(redux)

export const storeClient = (navigation, client) => {

  return async dispatch => {
    ....

    navigation.navigate('ListCliente');  

  }
}

1 个答案:

答案 0 :(得分:1)

**已更新

您需要:

1-将NavigationActions导入到您的操作文件(即actions.js)

import { NavigationActions } from 'react-navigation'

2-用NavigationActions替换每个“导航”,您的调用导航的代码应类似于:

const loginUserSuccess = (dispatch, user, navigation) => {

    dispatch({
        type: LOGIN_USER_SUCCESS,
        payload: user,

    });

   NavigationActions.reset({
      index: 0,
      actions: [NavigationActions.navigate({ routeName: 'employeeList' })],
    }),


};