我是redux的新手,似乎找不到适合我问题的答案。当我尝试按此解决方案中所示插入本地存储时-> Where to write to localStorage in a Redux app? ...
我收到一条错误消息,说我的状态稍后在线程中未定义,我不确定为什么。
这是沙箱中的完整应用-> https://codesandbox.io/s/5yn3kqqlkk(我建议与chrome一起使用)
如果我尝试取消注释以下文件中的行...
@Test
@Sql(scripts = "/clean_login_attempts.sql", executionPhase = AFTER_TEST_METHOD, config = @SqlConfig(dataSource = "h2Datasource", transactionManager = "h2tx"))
void loginAttemptsIncrementTheCount() throws Exception {
unsuccessfulLoginRequest();
unsuccessfulLoginRequest();
unsuccessfulLoginRequest();
LoginAttempt loginAttempt = loginAttemptService.getAttempt("admin");
assertEquals(3, loginAttempt.getAttempt());
}
应用程序崩溃,其属性处于未定义状态-> https://i.imgur.com/h0kcpBD.png
有人可以告诉我为什么会这样,我在做什么错吗?
答案 0 :(得分:1)
看起来问题出在persistentState上,否则条件是设置一个空对象而不是未定义(错误消息正在读取的内容)。因此,它是将状态更改为一个空对象,而不是单独保留它。
解决方案代码...
let persistedState = localStorage.getItem("reduxState")
? JSON.parse(localStorage.getItem("reduxState"))
: undefined;