在React组件更新时刷新页面

时间:2018-06-02 05:04:09

标签: javascript reactjs

我的应用中有很少的React组件可以发送ajax调用。除了一件事以外,一切正常。我想在特定组件更新时刷新页面。所以我在location.reload()方法中使用了componentWillReceiveProps。虽然它可以工作,但遗憾的是,只要组件获得更新,整个页面就会重新加载,而不仅仅是具有location.reload()代码的组件。

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

使用某些条件(例如if block)包装location.reload()并根据组件状态更改选择该条件,不要直接写入location.reload(),因为它将针对传递给的任何状态更改运行那个组成部分。