我试图将信息从子组件传递到父组件,并且我希望每当子组件中的信息发生变化时都能这样做。
到目前为止,我所做的似乎不起作用。config的值确实在子组件中得到更新,但data的值在父组件中从未得到更新。
我做错了什么?
以下是我的父母(删减版):
function App() {
const version = process.env.VERSION;
const [data, setData] = React.useState(null)
const childToParent = (childData) => {
setData(childData)
}
console.log(data)
return (
<Container data-testid="containerId" childToParent={childToParent} />
<Footer data-testid="footerId" version={version} config={data} />
);
}
export default App;
字符串
这是我的孩子(缩小版):
const Container = (childToParent) => {
// config comes from an API call
React.useEffect(() => {
() => childToParent({config});
}, [config]);
return (
<other components/>
)
}
型
2条答案
按热度按时间hfyxw5xn1#
1.您的
Container
组件中的props没有被正确地解构。useEffect
依赖数组中存在错误。让我们纠正这些问题:
1.在
Container
组件中,props需要正确地解构才能访问childToParent
。字符串
1.在父组件(
App
)中,需要将childToParent
函数正确传递给Container
组件。型
通过这些调整,现在只要
config
值发生更改,来自Container
组件的config
数据就应该正确更新父(App
)组件中的data
状态。mlmc2os52#
首先你必须从props中解构childToParent;
下面是示例代码:
字符串
或者直接用曲撑破坏
型