Javascript 每次渲染组件时';让我们点击
我有一张显示姓名和身份证的国家名单。 我希望能够编辑国家,所以我为每一行添加了编辑按钮。组件的结构如下所示:Javascript 每次渲染组件时';让我们点击,javascript,reactjs,redux,Javascript,Reactjs,Redux,我有一张显示姓名和身份证的国家名单。 我希望能够编辑国家,所以我为每一行添加了编辑按钮。组件的结构如下所示: ListComponent -- Edit Component // will show a modal --- Modal Component ---- Form Component 我应该在modal打开时填写表格,现在的问题是: 我应该使用哪种生命周期方法填写表格 componentDidMount仅发射一次 componentdiddupdate不会在第一次调用时触发,而
ListComponent
-- Edit Component // will show a modal
--- Modal Component
---- Form Component
我应该在modal打开时填写表格,现在的问题是:
我应该使用哪种生命周期方法填写表格
componentDidMount
仅发射一次
componentdiddupdate
不会在第一次调用时触发,而会在之后触发
代码:
componentDidMount(prevProps, prevState) {
if(this.props.status == 'update') {
this.props.form.setFieldsValue({
isForeign: this.props.country.isForeign,
name: this.props.country.name,
});
}
}
您可以使用组件willreceiveprops componentWillReceiveProps:当特定道具更新到时执行 触发状态转换 我的代码库中的小示例
componentWillReceiveProps(nextProps) {
if (this.props.userId !== nextProps.userId) {
const url = `${ROLE_API}/${nextProps.userId}`;
Get(url).then(res => {
this.setState({rolesName: res.data.rolesName,
currentUserRoles: res.data.currentUserRoles,
userId: res.data.userId});
});
}
}
如果要在类组件中处理启动和更新,必须同时使用这两种生命周期方法。这就是React为功能组件实现钩子以避免冗余的一个重要原因
谢谢您的建议,但第一次单击它不会触发,但第二次单击后触发。您对这类内容有什么建议吗?请尝试在componentDidUpdate中重复您的代码。不过,从父组件控制此表单似乎更好。在父组件中,您可以简单地使用状态控制这一切,而不必使用生命周期检查道具,然后执行对父组件的回调。