调用更新本地存储返回未定义

Posted

技术标签:

【中文标题】调用更新本地存储返回未定义【英文标题】:Call to update local storage returning undefined 【发布时间】:2020-11-16 02:10:30 【问题描述】:

在我的 React 应用程序中,我在登录应用程序时将一系列社区问题存储在本地存储中。但是当我尝试向列表中添加另一个社区问题并更新本地存储时,结果是未定义的。

这是我的问题上下文配置...:

function IssueProvider( children ) 
  const issues = JSON.parse(localStorage.getItem('issues'));
  const [issueState, setIssueState] = useState(issues);

  function setIssueInfo( issues ) 
    localStorage.setItem('issues', JSON.stringify(issues));
    setIssueState(issues)
  

...这里是使用 Provider 的函数:

function handleSubmit(event) 
  const  data  = await <my axios request>

  issueContext.setIssueInfo(data);
  history.push(`profile`);

有趣的是,当我登录并获取这些问题时,它们已成功登录到本地存储。但是当我尝试通过添加新的社区问题进行更新时,本地存储中的值返回未定义。提前感谢您的帮助!

【问题讨论】:

这里缺少一个括号。 const issues = JSON.parse(localStorage.getItem('issues'); 你能发布你遇到问题的确切代码或特定行吗 你的解释不足以给出答案 【参考方案1】:

常量问题 = JSON.parse(localStorage.getItem('issues');

上面的行中缺少右括号。这是你面临的问题吗。您能否详细说明您在哪里遇到问题。

常量问题 = JSON.parse(localStorage.getItem('issues'));

【讨论】:

抱歉,打错了。刚刚编辑了它,所以它是正确的,就像你现在看到的那样。我的错误来自 useState 钩子。

以上是关于调用更新本地存储返回未定义的主要内容,如果未能解决你的问题,请参考以下文章

部署原型工件时,Nexus Maven 原型存储库未更新

Vuex 操作未将本地存储令牌添加到 Axios 调用后

骨干本地存储“未定义不是函数”

最新 iOS 更新 (12.2) 后,本地存储中的视频未在 WebView (Xamarin.Forms) 中播放

Vue Axios 本地存储的令牌未定义

解析本地数据存储 + 网络同步