React Native - 获取组件在视图中的位置

React Native - Get the position of a component in the View

我正在尝试获取组件在 React Native 中的位置。

说我有一个观点:

<ScrollView>
    lots of items...
    lots of items...
    lots of items...
    <View></View>
</ScrollView>

最后我希望能够最终滚动到视图所在的位置。

此 link 展示了如何使用本机 ui 经理获得职位,但是当 运行 它 returns:

"Attempted to measure layout but offset or dimensions were NaN"

React Native: Getting the position of an element

我试过了

this.refs.VIEW.measure((ox, oy, width, height, px, py) => {
    //ox ... py all = 0
});

有时,如果您在 componentDidMount 中使用测量,则必须将其包装在 setTimeout 中:

setTimeout(() => {
    this.refs.VIEW.measure((ox, oy, width, height, px, py) => {
    });
}, 0);

您可能希望在 View 组件上使用 onLayout 回调。 setTimeout 可能无法在 100% 的时间内工作。

<View onLayout={this.measureMyComponent} />