我有一个react / redux应用程序,在这里我需要使用localStorage从状态开始填充道具。
我当时正在考虑用这种方式做
const initialState = (() => {
let username = window.localStorage.getItem('username');
if (!username) {
username = '';
}
return {
username: username
};
})();
我听说将initialState与逻辑复杂化并不是一个好习惯,但是我还没有找到其他实现方法
有更清洁的解决方法吗?
答案 0 :(得分:2)
只需使用或运算符,就可以使用默认的函数参数在reducer本身中定义初始状态。用户的初始状态将首先在本地存储中检查,如果它为 null ,则它将是一个空字符串。
const userReducer = ( state = window.localStorage.getItem("username") || "", action ) => {
/*
* some logic to handle actions
*
*/
return state;
};
希望这会有所帮助!