简体   繁体   English

Redux中的localStorage reducer错误

[英]error localStorage reducer in redux

hi i have this code for start a session, i need save the info the user in localStorage after the login 嗨,我有这段代码来开始会话,我需要在登录后将用户的信息保存在localStorage中

    'use strict';
    const defaultState ={
        permission: localStorage.getItem('email') ? localStorage.getItem('email') : null

     }

    export const signInReducer = (state=defaultState, action)=>{
        switch (action.type){
            case 'SIGNIN_REQUEST':
                return state;
            case 'SIGNIN_FAILURE':
                return state;
            case 'SIGNIN_SUCCES':
                return Object.assign({}, state, {

                    permission: action.payload.email ? JSON.stringify(action.payload.email) : null

                })

            default:
                return state;
        }
}

thanks for your help 谢谢你的帮助

You shouldn't save to localStorage in your reducers. 您不应该在减速器中保存到localStorage These should be pure and have no side effects. 这些应该是纯净的,没有副作用。

Try doing it in your action creator: 尝试在动作创建者中执行以下操作:

const signInSucess = (user) => {
  localStorage.setItem('permission', user)
  //your code...
  return { type: "SIGNIN_SUCCES", payload: user }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM