推送状态而无需重新触发组件负载

时间:2019-09-13 22:52:45

标签: reactjs react-router-v4

可以说我只有一个组件,该组件在挂载时会获取一些数据。 我希望一旦组件获取了数据就可以更改url(pushState),但是我不想更改页面上的任何内容或重新呈现该组件。

假设我有一个路由“ /”,它加载了一个,它会在加载时获取搜索到的内容。提取数据后,我希望能够更新网址说/ searchterm

我想做类似的事情 window.history.pushState(null,null,'/ searchterm'),其中url已更新,但页面上没有任何更改。

尝试使用with状态并使用this.props.history.push

1 个答案:

答案 0 :(得分:0)

您可以将路由存储为您的状态,然后memoize将组件存储在函数中,如果该路由发生更改,该函数将返回true,这将阻止更新。如果您仍在使用类组件,则可以使用shouldComponentUpdate

实现类似的功能