0
我試圖將抽屜傳遞給不同的視圖,以便他們可以在單擊按鈕時將其打開。將抽屜傳遞給導航器視圖
index.js - 在這裏創造的抽屜
renderScene(route, navigator) {
var Component = ROUTES[route.name];
return <Component route={route} navigator={navigator} api={new Api()} session={new Session()} style={globalStyle} {...route.passProps} />;
}
render() {
return (
<Drawer
ref={(ref) => { this._drawer = ref; } }
type="overlay"
tweenDuration={150}
//content={<SideBar navigator={this._navigator} />}
tapToClose
acceptPan={false}
onClose={() => this.closeDrawer()}
openDrawerOffset={0.2}
panCloseMask={0.2}
styles={{
drawer: {
shadowColor: '#000000',
shadowOpacity: 0.8,
shadowRadius: 3,
},
}}
tweenHandler={(ratio) => {
return {
drawer: { shadowRadius: ratio < 0.2 ? ratio * 5 * 5 : 5 },
main: {
opacity: (2 - ratio)/2,
},
};
} }
negotiatePan
>
<Navigator
ref={(ref) => { this._navigator = ref; } }
initialRoute={{ name: 'home', passProps: { drawer: this._drawer } }}
renderScene={this.renderScene}
/>
</Drawer>
);
}
home.js - 這是頁眉和頁腳,以及在打開的抽屜按鈕。
render() {
return (
<Container>
<Header>
<Button transparent onPress={this.props.drawer.open()}>
<Icon name="ios-menu" />
</Button>
<Title>Botulo.</Title>
</Header>
<Content>
<Text>{this.props.user.display}</Text>
</Content>
<Footer>
<FooterTab>
<Button transparent>
<Icon name='ios-person' />
</Button>
<Button transparent>
<Icon name='ios-grid-outline' />
</Button>
<Button transparent>
<Icon name='ios-chatboxes' />
</Button>
</FooterTab>
</Footer>
</Container>
);
}
問題是,在home.js中,'this.props.drawer'是未定義的。
傳遞抽屜實例並調用open/close()方法的正確方法是什麼?
感謝您的幫助。
方舟。