【发布时间】:2021-01-06 03:54:27
【问题描述】:
这是我复制了场景的应用程序,这里是代码框中的demo
我有两个组件,Leagues(父)和Details(子)。
我在Details Component 按钮中有一个已实现的重置按钮示例
const cleanArray = () => {
setDataHomeTeam([]);
};
<button onClick={cleanValue} type="button">Reset</button>
您可以在demo 中看到正在清空团队统计数据的数组
我的问题是,我可以实现相同的按钮,但从 Details 组件和父组件 Leagues 中取出?有什么方法可以实现?
我想走这条路,但我做不到。
所以在我的Details.js
let Details = forwardRef(({ ....
const cleanArray = () => {
setDataHomeTeam([]);
};
useImperativeHandle(ref, () => {
return {
cleanValue: cleanValue
}
});
在App.js
<Leagues/>
<button onClick={cleanValue} type="button">Reset</button>
<Details ref={ref} />
我收到此错误:'cleanValue' is not defined no-undef
这是我无法通过反应做的事情吗?我怎样才能实现它?
【问题讨论】:
-
告诉我你想要达到的目标。你想从父组件改变子组件的状态还是从chiuld改变父组件的状态
-
任何时候我改变联赛,我想清空我从最后一个选择的球队创建的数组,所以在这种情况下我想从父组件更改子组件的状态。希望清楚,谢谢
-
先告诉我哪个是父母,哪个是孩子
-
我已编辑问题以使其更清晰,父级是 Leagues,子级是 Details
-
让我改述一下。您提到要使用 useImperativeHandle。仅当您想通过向子组件添加 ref 来从父组件触发子组件中的函数时才使用此选项。所以我要问的是联赛和细节组件之间的关系是什么。
标签: reactjs redux use-effect use-reducer use-ref