React Native Redux更新state时原有状态被移除问题如何解决
问题根因
GET_USER_PROFILE_LOADING和LOGIN_LOADING两个动作分支的返回值没有保留原有state的字段,触发loading动作时直接清空了所有已有数据,仅保留isLoading: true,后续GET_USER_PROFILE_SUCCESS分支展开的已经是被清空后的state,自然无法保留之前存储的user、token等字段。
修复方法
修改loading分支的返回逻辑,先展开原有state再覆盖isLoading字段即可:
case types.GET_USER_PROFILE_LOADING: case types.LOGIN_LOADING: return { ...state, isLoading: true, };
可选优化
当前default分支强制重置isLoading: false属于冗余逻辑,未匹配到对应动作时直接返回原有state即可,避免不必要的渲染触发:
default: return state;
内容的提问来源于stack exchange,提问作者Neha
相关产品推荐
相关产品推荐

