gpt4 book ai didi

react-native - 不调用onLayout

转载 作者:行者123 更新时间:2023-12-04 15:51:57 24 4
gpt4 key购买 nike

这是我的代码的一部分:

render() {
console.log("first log");
return (
<View onLayout={e => console.log("second log")}>
...

控制台显示“第一个日志”,但不显示第二个。 View 似乎正确渲染。我尝试了其他观点,但结果是一样的。
我正在使用 native 0.48.4。

最佳答案

我通过将初始高度更改为大于0来解决此问题,然后在更改ChildView的布局时成功触发了onLayout函数。

  constructor(props) {
super(props);
this.state = {
title: '',
height: 0 // changed to 1
};
}
onLayout = (event) => {
console.log('on layout:')
const {
x,
y,
width,
height
} = event.nativeEvent.layout;
console.log(x, y, width, height);
}
render() {
return (
<View style={[styles.container, {height: this.state.height}]}>
<View onLayout={this.onLayout}>
<ChildView/>
</View>
</View>
)
}


由于此重大更改:
Android:仅当布局实际上已更改时才调用onLayout
https://github.com/facebook/react-native/wiki/Breaking-Changes#android-only-call-onlayout-when-layout-has-actually-changed-15429e---astreet

关于react-native - 不调用onLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46389042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com