如何在不卸载的情况下隐藏组件?

lau*_*ent 6 layout react-native

我有一个列表组件,该组件在不需要时会保留在DOM中,以免滚动位置丢失。

我尝试将样式设置为,{display: 'none'}但这会卸载组件。我也尝试设置{ flex: 0.0001 }哪种类型的作品,但是感觉就像是hack(以后可能会优化为“ 0”),并且在显示/隐藏组件时会产生布局故障。

知道这样做的正确方法是什么?

Xar*_*lus 9

我发现在最近的 React Native 中采用了以下方法:

{ display: 'none' }
Run Code Online (Sandbox Code Playgroud)

对我来说做得很好,我的 Tab 组件切换布局而不卸载它的内容。

测试:RN 0.58.1, iPhone X 12.1


Mat*_*Aft 1

如果我理解正确的话,您希望组件保持安装状态但不占用任何空间或渲染任何内容?如果您只是将一个hide属性传递给组件,如果该属性为 true,则该组件将在渲染中返回一个空视图,该怎么办?

  • 是的,在隐形的同时保持安装状态。我也尝试过返回 null,但这相当于卸载组件(因为列表仍会被卸载)。 (2认同)