max*_*son 7 javascript lifecycle reactjs react-native
我试图弄清楚在组件生命周期的哪个点我可以调用measureInWindow视图并保证获得正确的值。例如:
const Measure = () => {
const ref = React.useRef();
React.useLayoutEffect(() => {
ref.current.measureInWindow((x, y) => {
// y is 0
})
});
return <View ref={ref} />;
};
Run Code Online (Sandbox Code Playgroud)
我在上面的例子中得到0了y,而不是88哪个是正确的值,因为导航栏那么高。如果我将measureInWindow调用放在setTimeoutwith 中,0ms那么我会得到正确的值。
我也尝试使用 usinguseEffect而不是,useLayoutEffect我得到了相同的结果。
编辑
对这篇文章的评论让我看到onLayout了View. 我的初步测试表明我可以measureInWindow在那里成功调用。但是,除了粗略的测试之外,我仍然希望找到一些具体的文档。
<View
ref={ref}
onLayout={e => {
ref.current.measureInWindow((x, y) => {
console.log('onLayout', y);
});
}}
/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2267 次 |
| 最近记录: |