【发布时间】:2016-12-19 16:36:49
【问题描述】:
我有一个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 将不会滚动。
您能想出一种方法来避免出于性能目的进行第二次渲染吗?
谢谢!
【问题讨论】:
-
并且使用
height: 100%;不起作用?
标签: javascript react-native redux react-native-flexbox