Javascript 反应:是否有方法捕获通过history.push发送的道具更改

Javascript 反应:是否有方法捕获通过history.push发送的道具更改,javascript,reactjs,Javascript,Reactjs,我正在编写一个组件,将参数上传到promises中的服务器。上传参数时,我重定向到另一个组件,并将参数对象作为道具发送,如下所示: this.props.history.push('/new-page/createForm', { parameters: this.state.parameters }); 在createform组件中,我接收道具并呈现参数上传的状态,它们呈现为上传(因为它们还没有完成上传) 回到前面的组件,一旦参数上传完成,我更新参数对象以反映新的状态,即上传 Pa

我正在编写一个组件,将参数上传到promises中的服务器。上传参数时,我重定向到另一个组件,并将参数对象作为道具发送,如下所示:

this.props.history.push('/new-page/createForm', {
    parameters: this.state.parameters

});
在createform组件中,我接收道具并呈现参数上传的状态,它们呈现为上传(因为它们还没有完成上传)

回到前面的组件,一旦参数上传完成,我更新参数对象以反映新的状态,即上传

ParamsService.uploadParam(parameter, uploadRoot)
.then(() => {
parameter.status = 'Uploaded';
})
现在,上传参数后,我希望创建表单自动重新渲染,以反映参数的新状态,但这不是自动发生的

但是,如果我在表单中执行某个操作,例如填充其中一个输入字段,从而触发React呈现,则参数将显示为已上载

ParamsService.uploadParam(parameter, uploadRoot)
.then(() => {
parameter.status = 'Uploaded';
})
是否有办法识别新创建表单中道具的更改,并在参数状态更改为“已上载”后重新渲染

我尝试过componentDidUpdate和getDerivedStateFromProps,但当参数状态更改为Upload时,这些函数不会触发

ParamsService.uploadParam(parameter, uploadRoot)
.then(() => {
parameter.status = 'Uploaded';
})
感谢任何帮助或指导。

看看是否能解决您的问题

如自述文件中的示例所示,一旦使用

export default addUrlProps({
  urlPropsQueryConfig: {
    foo: { type: UrlQueryParamTypes.number, queryParam: 'fooInUrl' }
  },
})(MyComponent);
MyComponent将收到2个props
this.props.foo
this.props.onChangeFoo
,允许您获取值并更改url参数
?fooInUrl

反应挂钩的解决方案: