我认为 React 对此的回答是 lifting state。
这在此处如何应用?
要将您的目标转化为行动,当一个单元格的状态变为“活跃”时,您希望它告诉周围的单元格他们的新状态是“半活跃”。
提升状态会说您的父组件App 应该保持每个单元格的状态。这是该组件初始状态的示例。为简单起见,两个单元格:
const cellData = [
{ colorName: "red", alpha: "(255,0,0,0.5)", state: "inactive" },
{ colorName: "blue", alpha: "rgba(0,0,255,0.5)", state: "active" },
]
当一个单元格被点击时,它会调用它收到的回调作为props,即handleClick(cellIndex)。父级中的该函数知道所有单元格,并且可以相应地更新其中的任何一个。
为什么这有用?
引用 React 文档:
通常,多个组件需要反映相同的变化数据。我们建议将共享状态提升到最接近的共同祖先。让我们看看它是如何工作的。
在这种情况下,父级可以“看到”所有单元格及其状态,并且知道每个单元格相对于其他单元格的位置。这使它处于正确的位置来决定所有单元格中的哪些是“活跃的”、“半活跃的”或“不活跃的”。