gpt4 book ai didi

mobx - 为什么 React 组件在用观察者()包装时会渲染两次?

转载 作者:行者123 更新时间:2023-12-03 20:28:37 65 4
gpt4 key购买 nike

简单地用 observer() 包装 React 组件似乎导致它们渲染两次。可能的原因是什么?我正在运行最新版本的 react 16.8.3、mobx 5.9.4 和 mobx-react-lite 1.2.0

例如:

import React from "react";
import { observer } from "mobx-react-lite";

const Item = observer(() => {
return (
<div>
{console.log("render item")}
Item
</div>
);
});

export default Item;

这发生在相对复杂的应用程序中。我在调试另一个问题时注意到了这种行为。然后我删除了尽可能多的代码,并能够在一个非常简单的情况下重现该问题。

编辑 : 请看下面的回答。我能够通过尝试使用 codeandbox 进行 repo 来确定问题。

最佳答案

我应该已经完成​​了codesandbox我在发布问题之前一直在努力,尽管这可能会为其他人节省痛苦和浪费的时间。事实证明,发生双重渲染的原因是我使用的是 React.StrictMode .有趣的是,双重渲染 React.StrictMode似乎只有在组件被 observer() 包裹时才会发生这是codesandbox . React.StrictMode在整个应用程序 (index.js) 周围使用,如果删除,则双重渲染停止。

关于mobx - 为什么 React 组件在用观察者()包装时会渲染两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55435090/

65 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com