【问题标题】:Retrieving objects from redux store从 redux 存储中检索对象
【发布时间】:2021-12-28 17:15:26
【问题描述】:

当它是一个对象时如何访问 Redux 存储? Redux DevTools 中的结构是:

在 FC 我正在尝试访问它:

  const user = useSelector((state) => state.user.user.data);

但首先有一个提示: 虽然代码在 .jsx 中,但类型“DefaultRootState”.ts(2339) 上不存在属性“用户”。 console.log("user:" + user) 显示 [object Object]。

将它包含在return (<h1>user: {user.firstName}</h1) 中会引发一个错误,即对象作为 React 子对象无效。

我也想将用户存储在本地存储中,但它保存为 [object Object] localStorage.setItem('user', user);

【问题讨论】:

  • 邮政编码不是截图。
  • user 是对象。这就是它存储为对象的原因。

标签: reactjs redux local-storage redux-store


【解决方案1】:

您应该执行console.log("user", user) 来查看user 对象而不是[Object object] 并将其保存到localStorage 您需要将其转换为这样的字符串(read the docs)

localStorage.setItem("user", JSON.stringify(user));

并检索它

const user = JSON.parse(localStorage.getItem("user"));

你遇到的错误

return (<h1>user: {user.firstName}</h1>) // Here you missed a ">" in the question

是因为在 user 对象内部有一个名为 firstName 的属性,它是对象而不是字符串,但我们不能确定,因为你在屏幕上剪切了它。

【讨论】:

  • 谢谢。设法解决所有问题。逗号在正确的位置可以表示多少。
猜你喜欢
  • 1970-01-01
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 2011-07-26
  • 2017-10-14
  • 2014-02-09
  • 2011-12-17
  • 1970-01-01
相关资源
最近更新 更多