反应重新渲染状态问题

时间:2020-10-26 18:14:52

标签: javascript reactjs state render

想知道是否有人可以帮助我。当状态更新为在响应文件中重新渲染所有状态时,我遇到了这个奇怪的问题:

这是我在执行其他操作时不想更新的主要状态:

{dashboard.layout.map((layout, i) => createContent(layout, i))}

但是,当使用“材质UI对话框”时,我单击了一个按钮以打开它,该按钮更新状态如下:

onClick={handleDashletSelectorOpen}
const handleDashletSelectorOpen = () => {
    setDashletSelectorOpen(true);
  };

以下是有问题的两个状态:

const [dashboard, setDashboard] = useState({
    layout: [],
    widgets: []
  });
const [dashletSelector, setDashletSelectorOpen] = useState(false);

我想做的是打开对话框,但不重新呈现仪表板状态。这可能吗?我确定我容易错过一些事情,但无法弄清楚。

任何帮助都会很棒。

谢谢

1 个答案:

答案 0 :(得分:0)

我本来想都错了。这里的问题是不同的“状态”不是不同的状态,而是具有多个道具的一个状态。一旦我意识到这个解决方案很容易,为了解决这个问题,我将所有其他无关紧要的道具移到了子组件上,如果父母重新渲染了,那就很好了,但是如果孩子重新渲染了,那么父母没有。很有魅力