Layout 如何在不卸载组件的情况下隐藏组件?
我有一个列表组件,我希望在不需要的时候将其保存在DOM中,这样滚动位置就不会丢失 我尝试将样式设置为Layout 如何在不卸载组件的情况下隐藏组件?,layout,react-native,Layout,React Native,我有一个列表组件,我希望在不需要的时候将其保存在DOM中,这样滚动位置就不会丢失 我尝试将样式设置为{display:'none'},但这会卸载组件。我也尝试过设置{flex:0.0001}哪种类型有效,但感觉像是一种黑客行为(稍后他们可能会将其优化为“0”),并且在显示/隐藏组件时会产生布局故障 知道正确的方法是什么吗?如果我理解正确,您希望组件保持安装状态,但不占用任何空间或渲染任何内容?如果只向组件传递一个hide属性,如果该属性为真,则该组件将在渲染中返回一个空视图。请尝试以下操作: &
{display:'none'}
,但这会卸载组件。我也尝试过设置{flex:0.0001}
哪种类型有效,但感觉像是一种黑客行为(稍后他们可能会将其优化为“0”),并且在显示/隐藏组件时会产生布局故障
知道正确的方法是什么吗?如果我理解正确,您希望组件保持安装状态,但不占用任何空间或渲染任何内容?如果只向组件传递一个
hide
属性,如果该属性为真,则该组件将在渲染中返回一个空视图。请尝试以下操作:
<div style={{visibility: this.state.hidden ? 'hidden' : 'visible'}}>
content
</div>
内容
我发现,在最近的几年中,该方法具有以下特点:
{ display: 'none' }
为我做的很好,我的标签组件在不卸载其内容的情况下切换布局
测试日期:
RN 0.58.1,iPhone X 12.1
是,在不可见的情况下保持安装状态。我也尝试过返回null,但这相当于卸载组件(因为列表仍将被卸载)。您需要从组件内部获取列表?高度=0,宽度=0,是否有效?{display:'none'}不会卸载组件。这对我来说很好。