【问题标题】:Refresh Page upon React Component UpdateReact 组件更新时刷新页面
【发布时间】:2018-06-02 05:04:08
【问题描述】:

我的应用程序中几乎没有发送 ajax 调用的 React 组件。除了一件事,一切都很好。我想在特定组件更新时刷新页面。所以我在componentWillReceiveProps 方法中使用了location.reload()。虽然它可以工作,但不幸的是,每当组件获得更新时整个页面都会重新加载,而不仅仅是具有 location.reload() 代码的组件。

为什么会发生这种情况,我该如何预防/解决这个问题?

更新和澄清:感谢您的回答。我非常清楚状态更改会重新呈现组件。这不是一个独立的 React 应用程序,需要刷新页面。

这个反应应用程序是 WP 设置页面的一部分,该页面是选项卡式的。一个设置选项卡是一个反应应用程序。启用按钮后,相应的选项卡应该可见并且需要刷新页面(因为它不是反应,而是 WP 后端代码)。

我的问题是如果我在单个组件的componentWillReceiveProps 方法中添加location.reload(),那么为什么其他组件即使没有这样的代码也会刷新页面。 componentWillReceiveProps 是所有组件共享的静态方法吗?为什么其他组件状态变化会捡起location.reload()并刷新页面?

【问题讨论】:

  • 我认为你应该使用状态而不是重新加载组件。
  • 你的particular component get updated怎么样?
  • @Venkat Raj N 这些答案之一是否解决了您的问题?如果是这样,您应该单击解决您的问题的答案旁边的大绿色复选标记

标签: javascript reactjs


【解决方案1】:

使用状态变量,每当您进行任何更改时,setState 只会更新您的组件,而不是更新整个页面。 更多参考请看:https://reactjs.org/docs/react-component.html

【讨论】:

    【解决方案2】:

    包装 location.reload() 与某些条件(例如,如果块)并根据您的组件状态更改选择该条件,不要直接编写 location.reload() ,因为它会针对传递给的任何状态更改运行那个组件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-17
      • 2021-06-12
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 2016-07-25
      • 2021-08-18
      • 2019-02-01
      相关资源
      最近更新 更多