我有一个ScrollView
内容不一定超过它的大小。假设它是一种形式,在出现错误时,它会扩展以添加错误消息,然后超出ScrollView
大小,这就是我使用该滚动条的原因。
问题是我希望内容始终至少与 ScrollView 的大小相同。我知道该minHeight
属性,但我发现使用它的唯一方法是重新渲染,我想避免这种情况。
我正在使用 redux 进行状态管理,这就是我所拥有的
<ScrollView
contentContainerStyle={[ownStyles.container, {minHeight: this.props.scrollHeight}]}
style={this.props.style}
showsVerticalScrollIndicator={false}
onLayout={(event) => {
scrollHeight = event.nativeEvent.layout.height;
this.props.setScrollContentHeight(scrollHeight);
}}
>
其中this.props.setScrollContentHeight
触发了一个动作,该动作进入状态上的高度,this.props.scrollHeight
称为高度。因此,在触发 onLayout 函数的第一次渲染之后,状态会使用 ScrollView 更新height
,然后我将其分配minHeight
给它的内容。
如果我将内容的样式设置flex: 1
为 ScrollView 将不会滚动。
您能想出一种方法来避免出于性能目的进行第二次渲染吗?
谢谢!