Javascript 将localstorage setItem/getItem与react-redux一起使用
我是redux的新手,我似乎找不到一个解决我问题的答案。当我尝试插入localstorage时,如此解决方案所示-> 我得到一个错误,说我的状态是未定义的线程,我不知道为什么 这是沙盒->中的完整应用程序(我建议与chrome一起使用) 如果我尝试取消注释以下文件中的行Javascript 将localstorage setItem/getItem与react-redux一起使用,javascript,reactjs,redux,react-redux,local-storage,Javascript,Reactjs,Redux,React Redux,Local Storage,我是redux的新手,我似乎找不到一个解决我问题的答案。当我尝试插入localstorage时,如此解决方案所示-> 我得到一个错误,说我的状态是未定义的线程,我不知道为什么 这是沙盒->中的完整应用程序(我建议与chrome一起使用) 如果我尝试取消注释以下文件中的行 import React from "react"; import ReactDOM from "react-dom"; import { createStore } from "redux"; import { Provide
import React from "react";
import ReactDOM from "react-dom";
import { createStore } from "redux";
import { Provider } from "react-redux";
import "./Style.css";
import App from "./App";
import reducer from "./reducers";
let persistedState = localStorage.getItem("reduxState")
? JSON.parse(localStorage.getItem("reduxState"))
: {};
const store = createStore(
reducer,
// persistedState,
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);
// store.subscribe(() => {
// localStorage.setItem('reduxState', JSON.stringify(store.getState()));
// });
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById("root")
);
从“React”导入React;
从“react dom”导入react dom;
从“redux”导入{createStore};
从“react redux”导入{Provider};
导入“/Style.css”;
从“/App”导入应用程序;
从“/reducers”导入减速机;
让persistedState=localStorage.getItem(“reduxState”)
? parse(localStorage.getItem(“reduxState”))
: {};
const store=createStore(
减速器,
//持续状态,
窗口.\uuuuRedux\uDevTools\uuuu扩展&&window.\uuuuRedux\uDevTools\uuuu扩展()
);
//store.subscribe(()=>{
//setItem('reduxState',JSON.stringify(store.getState());
// });
ReactDOM.render(
有人能告诉我为什么会发生这种情况以及我做错了什么吗?看起来问题出在persistentState上,否则条件设置的是空对象而不是未定义的对象(错误消息读取的是未定义的对象)。因此它将状态变为空对象,而不是将其单独保留
解决方案代码
let persistedState = localStorage.getItem("reduxState")
? JSON.parse(localStorage.getItem("reduxState"))
: undefined;
看起来问题在于persistentState else条件设置了一个空对象而不是未定义的对象(错误消息正在读取该对象)。因此,它将状态变为空对象,而不是将其单独保留
解决方案代码
let persistedState = localStorage.getItem("reduxState")
? JSON.parse(localStorage.getItem("reduxState"))
: undefined;
如果你至少能给出一些反馈,说明为什么这个问题被标记下来,那就太好了。我只能认为这与你正在使用的沙箱有关,因为我有一个应用程序设置,与store set/get local storage完全一样,它工作得非常好。很好,最初我在本地主机上运行的应用程序是Thread start:3000。这是github来克隆应用程序->…我只是把它扔到沙盒上,以便很容易地重新生成错误。好的,我现在将下拉并查看它。我发现了问题,请查看我的答案。事实上,我必须感谢我的一位朋友。如果你至少能给出一些反馈,说明问题被标记的原因,那就太好了。我只能这么认为了这与您正在使用的沙盒有关,因为我有一个应用程序设置,与store set/get local storage完全相同,它工作得非常好。最初我在本地主机上运行的应用程序是Thread start:3000。这是克隆应用程序的github->…我只是将其扔到沙盒上,以便轻松地重新生成错误。好的,我将下拉并重试现在看一看。我发现了这个问题,看看我的答案。事实上,我必须把这归功于我的一个朋友。我也会测试这个,我自己的项目我已经成功地使用了{}“。虽然我的创建存储函数有点复杂,所以这可能会影响结果。做得好,这100%有效,可能是最正确的方法。很好,我很高兴我们可以一起提供一个好的解决方案:)我也会测试这个,我自己的项目我已经成功地使用了“{}”。虽然我的创建存储函数有点复杂,因此可能会影响结果。做得好,这100%有效,可能是最正确的方法。太好了,我很高兴我们能一起提供一个好的解决方案:)