如何获取React Native组件的初始高度

时间:2018-03-28 08:25:17

标签: react-native

在我们的代码中,我们目前使用onLayout来存储各种组件的高度。

但是,布局偶尔会改变

1)这是在React Native中获得组件高度的最佳方法吗?

2)防止重复呼叫的最佳方法是什么?

我们可以只检查函数是否存在值,但这仍然意味着布局函数被不必要地调用。

示例代码:

storeHeaderHeight(event) {
    this.setState({
        ...this.state,
        maxHeight: event.nativeEvent.layout.height
    });
}

storeContentHeight(event) {
    this.setState({
        ...this.state,
        minHeight: event.nativeEvent.layout.height
    });
}

...

<View style={styles.header} onLayout={e => this.storeHeaderHeight(e)}>
  <Text style={styles.caret}>{isExpanded ? 'v' : '^'}</Text>
  <Text style={styles.title}>{title}</Text>
</View>

...

<View style={styles.content} onLayout={e => this.storeContentHeight(e)}>
  {this.props.children}
</View>

0 个答案:

没有答案