【问题标题】:How to access state value on page refresh?如何在页面刷新时访问状态值?
【发布时间】:2019-04-02 09:49:14
【问题描述】:

如何在页面刷新时访问状态值?

当我刷新页面时,我无法获得状态值。所以有人建议我解决这个问题。我使用下面的库代码在我的应用程序中实现了一个计时器。

https://medium.com/@650egor/react-30-day-challenge-day-1-simple-timer-df85d0867553

谢谢。

【问题讨论】:

  • 那么,教程不起作用还是什么?你的问题不是很清楚。我建议你把你的问题描述清楚。
  • 状态在页面刷新时被重置,这就是 React 的工作原理。你可以看看 react-redux,一个状态管理工具,可以确保你的状态在刷新后保持不变。
  • 我正在我的项目中实现时间跟踪器。当我启动我的跟踪器时,我将此跟踪器值存储到状态中,当暂停此跟踪器时,然后将该值更改为状态。但是当我刷新页面时,没有得到最后更新的状态值。那么如何在页面刷新时获取状态值呢?

标签: reactjs material-ui next.js


【解决方案1】:

如果您不将状态存储在某处,则在站点刷新时它会丢失。您将再次看到默认状态。

它就像一个普通的脚本。如果你停止它并再次运行它,它就不会“记住”它之前所做的事情。

您现在可以使用浏览器的本地存储来存储一些信息。但我建议,看看一些状态管理工具来正确处理状态。

这是您要寻找的答案吗?让我知道。如果不是,请提供您正在谈论的代码的 sn-p 或您收到的错误消息。

这是使用本地存储的工作原理:

state = {
    time: "11:00pm",
  }

  componentDidMount = () => {
    if (myStorage.state) {
      this.setState(JSON.parse(myStorage.state))
    }
  }

  saveToStorage = () => {
    myStorage.setItem("state", JSON.stringify(this.state))
  }

您现在必须尽可能频繁地调用 saveToStorage。记住刷新就像在中间杀死一个电子游戏。如果您没有保存,您将回到起点。这有帮助吗?

问候

【讨论】:

  • 我将时间值存储到状态中,并在暂停、停止等其他操作上更改该值。但是我需要在刷新页面上更新状态值,那么如何在页面刷新时获取该值?我使用了一个已经添加到我的问题中的代码库。
  • 参见上面的更改。
  • 我没有将状态值存储到本地存储,因为我的状态值每秒都在变化。主要问题是当计时器运行时,我正在刷新页面,此时状态值重新初始化为零。那么如何在刷新页面时获取计时器的最后状态值。
  • 好的,我明白了。你不能这样做。这不是网页的工作方式。信息无处存储。如果您不调用 API 或将其保存在某个地方,它将丢失。对不起。
猜你喜欢
  • 2019-08-23
  • 2018-07-25
  • 2017-08-19
  • 1970-01-01
  • 2020-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多