![](/img/trans.png)
[英]React Native: How to pass props to 'routeMapper' of 'Navigator.NavigationBar'?
[英]How can I pass refs into variable of NavigationBar routeMapper (React Native)?
以下是UPDATED代碼-我正在嘗試從https://github.com/root-two/react-native-drawer實現react-native-drawer,並且我傳遞給NavigationBarRouteMapper的變量正確記錄了openDrawer()函數單擊左側導航按鈕時,它不執行任何操作:
class practice extends Component {
...
openDrawer(){
this._drawer.open()
}
render() {
return (
<Drawer
content={<DrawerPanel/>}
openDrawerOffset={100}
ref={(ref) => this._drawer = ref}
type='static'
tweenHandler={Drawer.tweenPresets.parallax}
>
<Navigator
configureScene={this.configureScene}
initialRoute={{name: 'Start', component: Start}}
renderScene={this.renderScene}
style={styles.container}
navigationBar={
<Navigator.NavigationBar
style={styles.navBar}
routeMapper={NavigationBarRouteMapper(this.openDrawer)}
/>
}
/>
</Drawer>
);
}
}
var NavigationBarRouteMapper = openDrawer => ({
LeftButton(route, navigator, index, navState){
return(
<TouchableHighlight onPress={()=>{openDrawer}}>
<Text>Open Menu</Text>
</TouchableHighlight>
)
}
},...
是什么原因導致抽屜無法打開? 似乎一切都已正確實施。
您的問題與testingString
變量的范圍有關。 當您console.log(this.testingString)
, this
指向NavigationBarRouteMapper
函數返回的對象。 您尚未在此對象上設置testingString
變量,因此它將返回未定義。
要獲取以這種方式傳遞給函數的變量,只需使用testingString
,而不要使用this.testingString
。
編輯有關openDrawer函數
您傳遞的是一個返回 openDrawer
函數的函數,而不是調用它。 您將希望傳遞onPress={openDrawer}
或onPress={() => openDrawer()}
作為道具。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.