我使用onLayout来检测屏幕方向,并且它在我的根视图中正常工作,但是当我在抽屉内部实现它没有工作时,出现这种情况的原因是什么?
代码:
import Drawer from 'react-native-drawer'
...
onLayout(e) {
console.log('onLayout');
}
<Drawer onLayout={this.onLayout}
当方向改变时,它没有记录任何东西!
答案 0 :(得分:1)
这是因为抽屉组件不会将onLayout
作为道具。您可以在source code中看到呈现的View
确实使用了onLayout
,但它并没有从this.props.onLayout
这样的内容中提取。
我不确定你要做什么,但也许this issue会帮助你。如图所示,您可以将函数传递给openDrawerOffset
而不是整数或比率,以便在设置偏移量方面更加动态:
openDrawerOffset={(viewport) => {
if (viewport.width < 400) {
return viewport.width * 0.1;
}
return viewport.width - 400;
}}
您可能也会从本地抽屉提供的Event handlers中受益。