2017-04-25 96 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受益原生抽屜必須提供。