【发布时间】:2021-10-23 00:30:10
【问题描述】:
我有以下代码:
export default function Parent() {
const children1 = someArrayWithSeveralElements.map(foo => <SomeView />);
const children2 = someArrayWithSeveralElements.map(foo => <SomeCheckbox />);
return (<>
{children1}
{/*Some other components*/}
{children2}
</>)
};
对于给定元素foo,有一个SomeView 组件,它根据SomeCheckbox 的状态有条件地呈现。我在想办法让复选框中的状态影响同级视图组件的呈现时遇到问题。
通常解决方案是在父组件中声明状态钩子并将它们传递给每个子组件,但由于兄弟姐妹是通过 foreach 循环呈现的,因此不可能这样做。
我目前的解决方案是也在循环中为每个foo 生成状态钩子,但这感觉有点笨拙,因为最好避免在循环内创建钩子(someArrayWithSeveralElements 不是毫无价值打算在安装后更改)。
有没有更优雅的方法来解决这个问题?
【问题讨论】:
标签: reactjs react-hooks