gpt4 book ai didi

javascript - 从父 React 刷新子状态

转载 作者:搜寻专家 更新时间:2023-11-01 05:00:27 27 4
gpt4 key购买 nike

我有一个包含一些数据的表格,表格中的每个元素都是一个 React 类组件。它看起来像这样:

Table

我想要的只是有一个用于“选中所有”功能的复选框(左上角的复选框)。问题是我不知道如何解决这个问题,因为 propsstate

我在单元素组件中有这样的代码:

getInitialState: function() {
return { component: this.props.data };
},

render: function() {
var data = this.state.component;
data = data.set('checked', this.props.data.get('checked'));
...
}

我知道我不应该从 props 得到 checked 参数,但这只是暂时的。

我遇到的问题是:当我更新父级中的 checked 参数时,它不会更新状态,因为刷新后不会调用 getInitialState(是的,我知道它应该是那样的)。

我的问题是:我能以某种方式更新子组件的状态吗?或者这是更好的实现方式。

最佳答案

具有功能组件:当父级提供的 props 发生变化时,刷新子级内部状态的一种简单方法是通过 useEffect():

在 children 身上:

const [data, setData] = useState(props.data);

useEffect( () => {
setData(props.data);
}, [props.data]);

以这种方式,每次 props.data 更改时,都会触发 useEffect 并强制为某些数据设置新状态,因此组件会“刷新”。

关于javascript - 从父 React 刷新子状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29848967/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com