22

我想销毁我已经实例化的一些组件以释放内存。在我当前的应用程序中,我实例化然后释放它(删除对它的引用)的几乎每个视图都不会被垃圾收集。我不提意见。我不确定这个内存泄漏是由我的应用程序引起的还是它是 react-native(并且 react-native 有一些内存泄漏问题)。有没有办法自信地销毁视图实例?

4

2 回答 2

1

当你不再渲染一个组件时,React 会销毁它。或者当您从虚拟 DOM 中省略它时。

const [render, setRender] = useState(true)

<View>
   {render
     ? <HeavyComponent/>    
     : null
   }
   <AnotherComponent/>
</View>
于 2021-05-08T14:25:00.153 回答
0

前段时间我通过了同样的问题,我发现问题是我没有正确使用反应。

为什么要手动实例化组件?

认为 React 的一大主要特性是树 DOM 虚拟组件,如果您手动实例化一个组件,那么在某种程度上,您可以避免它。

请记住,您应该在渲染函数中使用组件,或者在渲染函数中渲染和使用组件的函数。如果必须将组件传递给另一个组件,则应使用高阶组件的概念。

我希望我对你有所帮助。

于 2017-10-02T18:37:42.237 回答