【问题标题】:React Re-Render State Issue反应重新渲染状态问题
【发布时间】:2021-02-09 01:00:28
【问题描述】:

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

这是我在做其他事情时不想更新的主要状态:

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

但是,当使用 Material UI 对话框时,我单击一个按钮将其打开,该按钮将状态更新如下:

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

以下是有问题的两个州:

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

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

任何帮助都会很棒。

谢谢

【问题讨论】:

  • 检查是否在渲染布局上使用完全相同的 ,否则它将在每个函数运行时重新渲染
  • 是的,它们应该与作为数组的一部分拾取的元素键相同,并且该数组是从仪表板状态生成的,在尝试加载 MUI 对话框时不会更改。

标签: javascript reactjs state render


【解决方案1】:

我做错了。这里的问题是不同的“状态”不是不同的状态,而是一个具有多个道具的状态。一旦我意识到这一点,解决方案很容易,为了解决这个问题,我将所有其他对子组件无关紧要的道具都以这种方式移动,如果父级重新渲染,那很好,但如果子级重新渲染,那么父级没有。发挥了魅力

【讨论】:

    猜你喜欢
    • 2016-07-13
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    • 2020-01-13
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多