我是新来对本机与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');
}
}
答案 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' })],
}),
};