reactjs - react-navigation redux dispatch is not a function 错误
问题描述
我在使用 react-navigation 的 react-native redux 应用程序中遇到错误,我有一个多阶段注册页面,该页面在第一阶段完成后重定向。
重定向成功,但显示如下错误。
Possible Unhandled Promise Rejection (id: 0):
TypeError: dispatch is not a function
我在承诺中调用调度,如下所示:
export const registerUser = ({ email, username, password }) => (dispatch) => {
dispatch({ type: REGISTER_USER_START });
register(email, username, password)
.then(() => {
dispatch({ type: REGISTER_USER_SUCCESS });
dispatch(NavigationActions.navigate({ routeName: 'RegisterDetails' }));
})
.catch((error) => {
console.log('error', error);
dispatch({ type: REGISTER_USER_FAIL })
});
};
这些是我的路线
const AuthStack = StackNavigator({
RegisterUser: { screen: RegisterUser },
RegisterDetails: { screen: RegisterDetails },
RegisterComplete: { screen: RegisterDetails },
PasswordRecovery: {screen: PasswordRecovery}
});
const AppStack = StackNavigator({
Landing: { screen: Landing }
});
const AppNavigator = SwitchNavigator({
Auth: AuthStack,
App: AppStack
},
{
initialRouteName: 'Auth',
});
export default AppNavigator;
这是我的导航减速器
import AppNavigator from '../routes';
const INITIAL_STATE = AppNavigator.router.getStateForAction('RegisterUser');
export default (state = INITIAL_STATE, action) => {
let nextState;
switch (action.type) {
default:
nextState = AppNavigator.router.getStateForAction(action, state);
break;
}
return nextState || state;
};
解决方案
推荐阅读
- java - 没有静态方法 encodeBase64String([B)Ljava/lang/String; 在 Lorg/apache/commons/codec/binary/Base64 类中;或其超类
- c - 如何在 _start 中使用 argv?
- c# - 来自 API 的 JsonConvert.DeserializeObject 对象,使用 Webclient 可能是 2 种对象类型之一
- python - 如何让程序在 Python 中完成后重新运行
- html - 全新的 CSS,无法弄清楚如何为我的每个 html 段落正确编码不同的类/属性值
- django-rest-framework - 类型错误:+= 不支持的操作数类型:“datetime.timedelta”和“NoneType”
- html - 如何使 html 灯箱响应?
- google-apps-script - Google脚本仅使用值和格式复制工作表
- html - 如何在引导程序 4 中创建响应式布局
- git - 推送到 GitHub 时远程挂断