React native 在登录后反应本机redux stateTrops在呈现前不更新
在登录并重定向到主页组件后,我在此呼叫:React native 在登录后反应本机redux stateTrops在呈现前不更新,react-native,redux-form,React Native,Redux Form,在登录并重定向到主页组件后,我在此呼叫: mapStateToProps = (state) => ({ getUser: state.userReducer.getUser }); 并尝试呈现该值: render() { const {getUser: {userDetails}} = this.props; return( <View><Text>{userDetails.EmployeeID}</Text>&l
mapStateToProps = (state) => ({
getUser: state.userReducer.getUser
});
并尝试呈现该值:
render() {
const {getUser: {userDetails}} = this.props;
return(
<View><Text>{userDetails.EmployeeID}</Text></View>
)
}
const getUser=(state={},action)=>{
}
导出默认合并器({
getUser
});
和登录用户操作
export const loginUser = (payload) => {
return async (dispatch) => {
try {
dispatch({
type: "LOGIN_USER_LOADING"
});
const response = await fetchApi("front/authentication/login", "POST", payload, 200);
if(response.responseBody.status) {
dispatch({
type: "LOGIN_USER_SUCCESS",
});
dispatch({
type: "AUTH_USER_SUCCESS",
token: response.token
});
dispatch({
type: "GET_USER_SUCCESS",
payload: response.responseBody.data
});
return response.responseBody.status;
} else {
throw response;
}
} catch (error) {
dispatch({
type: "LOGIN_USER_FAIL",
payload: error.responseBody
});
return error;
}
}
}
但是得到一个错误:
TypeError:Undefined不是对象(正在评估“userDetails.EmployeeID”
如果我删除userDetails.EmployeeID
并导航到下一页,然后返回,则会显示EmployeeID
很好。试试这种方法
render() {
const {getUser} = this.props;
return(
<View><Text>{getUser.userDetails.EmployeeID}</Text></View>
)}
render(){
const{getUser}=this.props;
返回(
{getUser.userDetails.EmployeeID}
)}
如果这不起作用,请发布redux代码如果您的初始状态解析为
userDetails
的“falsy”,您可以“等待”它的值:
render() {
const {getUser: {userDetails}} = this.props;
return <View>
<Text>{userDetails ? userDetails.EmployeeID : 'Loading'}</Text>
</View>
}
render(){
const{getUser:{userDetails}}=this.props;
返回
{userDetails?userDetails.EmployeeID:'Loading'}
}
用户reducer的初始状态是什么??您可以发布您的用户reducer
吗?谢谢,我已经用reducer和登录用户操作更新了问题。谢谢,请用reducer和登录用户操作检查更新的问题
render() {
const {getUser} = this.props;
return(
<View><Text>{getUser.userDetails.EmployeeID}</Text></View>
)}
render() {
const {getUser: {userDetails}} = this.props;
return <View>
<Text>{userDetails ? userDetails.EmployeeID : 'Loading'}</Text>
</View>
}