Javascript React-Redux未在mapStateToProps中获取状态
我试图让用户通过react redux在我的应用程序中登录,但它给出的错误如下 TypeError:undefined不是对象(正在计算“state.user\u name”) app.jsJavascript React-Redux未在mapStateToProps中获取状态,javascript,react-native,react-redux,Javascript,React Native,React Redux,我试图让用户通过react redux在我的应用程序中登录,但它给出的错误如下 TypeError:undefined不是对象(正在计算“state.user\u name”) app.js 从“React”导入React; 从“react native”导入{样式表、文本、视图}; 从“/drawerNavigator.js”导入AppDrawer; 从“./screens/stackNavigator”导入MainNavigator 从“redux”导入{createStore} 从“re
从“React”导入React;
从“react native”导入{样式表、文本、视图};
从“/drawerNavigator.js”导入AppDrawer;
从“./screens/stackNavigator”导入MainNavigator
从“redux”导入{createStore}
从“react redux”导入{Provider}
初始状态={
名字:“,
姓氏:“,
用户名:“”,
密码:“”,
}
const reducer=(state=initialState,action)=>{
开关(动作类型){
“注册”案例:
回来
{first_name:state.first_name=action.payload.first_name}
{last_name:state.last_name=action.payload.last_name}
{user\u name:state.user\u name=action.payload.user\u name}
{password:state.password=action.payload.password}
控制台日志(“注册”);
“登录”案例:
回来
stringify(action.payload);
}
返回状态
}
const store=createStore(reducer);
导出默认类App扩展React.Component{
建造师(道具){
超级(道具);
}
render(){
返回(
);
}
}
此处出现了特定错误。JS将评估下面的代码
case 'SIGN_UP':
return
{first_name: state.first_name = action.payload.first_name}
...
作为
这是一个活生生的例子
const testReturn=()=>{
回来
{a:2}
}
log(testReturn())
您的减速机应该如下所示
const reducer = (state = initialState, action) =>{
switch (action.type) {
case 'SIGN_UP':
return { ...action.payload };
case 'LOG_IN':
return JSON.stringify(action.payload);
default:
return state;
}
}
在某些情况下,使用分号结束语句缺少它会产生问题。您的
注册案例中发生了什么?是否返回4个单独的对象?请尝试在MapStateTops中执行console.log(状态)。当你这样做时,你得到了什么输出?是的,4个不同的对象@lankovova@Muljayan我正在获取App.js中定义的完整状态对象。您是否在提到的对象中看到user_name值?
const reducer = (state = initialState, action) =>{
switch (action.type) {
case 'SIGN_UP':
return { ...action.payload };
case 'LOG_IN':
return JSON.stringify(action.payload);
default:
return state;
}
}