我正在尝试以原生的方式获取组件的位置。
说我有一个观点:
<ScrollView>
lots of items...
lots of items...
lots of items...
<View></View>
</ScrollView>
最后,我希望能够最终滚动到View所在的位置。
此链接显示如何使用本机ui管理器获取位置,但是在运行时它返回:
“尝试测量布局但偏移或尺寸为NaN”
React Native: Getting the position of an element
我试过
this.refs.VIEW.measure((ox, oy, width, height, px, py) => {
//ox ... py all = 0
});
答案 0 :(得分:11)
您可能希望在View组件上使用onLayout回调。 setTimeout可能无法在100%的时间内工作。
<View onLayout={this.measureMyComponent} />
答案 1 :(得分:10)
有时如果您在componentDidMount中使用measure,则必须将其包装在setTimeout中:
setTimeout(() => {
this.refs.VIEW.measure((ox, oy, width, height, px, py) => {
});
}, 0);