2017-04-25 63 views
0

我使用onLayout来检测屏幕方向,它在我的根视图中工作正常,但是当我在抽屉内部实现时,它不工作,为什么会出现这种情况?React原生检测屏幕旋转

代码:

import Drawer from 'react-native-drawer' 
    ... 
onLayout(e) { 
    console.log('onLayout'); 
} 
<Drawer onLayout={this.onLayout} 

当朝向改变它没有记录任何东西!

回答

0

这是因为抽屉组件不需要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; 
}} 

您也可以从react-的Event handlers受益原生抽屉必须提供。