在我的 index.ios.js 中使用 react-native-drawer ( https://github.com/root-two/react-native-drawer ),我进行了以下设置并尝试将“导航器”引用传递到内容的 < < Drawer /> 的 DrawerPanel />。我在 < DrawerPanel /> 中使用 console.log(this.props.navigator) 但传入了错误的导航器引用,当我尝试在 < DrawerPanel /> 中执行类似于 this.props.navigator.replace() 的操作时
如何传入正确的导航器构造函数,就像传入 renderScene 和 configureScene 的构造函数一样?:
class practice extends Component {
...
renderScene(route, navigator){
...
}
configureScene(route, routeStack){
...
}
render() {
return (
<Drawer
content={<DrawerPanel navigator={navigator}/>}
...
>
<Navigator
configureScene={this.configureScene}
initialRoute={{name: 'Login', component: Login}}
renderScene={this.renderScene}
style={styles.container}
navigationBar={
<Navigator.NavigationBar
style={styles.navBar}
routeMapper={NavigationBarRouteMapper(this.openDrawer)}
/>
}
/>
</Drawer>
);
}
}
先感谢您!
更新 3****
在我的 <DrawelPanel/>
import HomePage from './HomePage'
render(){
var pr = this.props
var navigator = pr.getNav()
return (
<View style={{flex:1, padding: 30, backgroundColor: 'black'}}>
<MadeButton
componentName={HomePage}
navigator={navigator}
pageName='HomePage'
style={{fontSize:15, fontWeight:'bold', color:'white'}}
/>
</View>
)
然后在我的 <MadeButton/>
static propTypes = {
componentName: React.PropTypes.any,
navigator: React.PropTypes.any,
pageName: React.PropTypes.string,
style: React.PropTypes.object
}
_navigate(type='Normal'){
this.props.navigator.replace({
component: this.props.componentName,
type: type,
name: this.props.pageName
})
}
render(){
var pr = this.props;
var st = this.state;
var styles = pr.style;
return(
<TouchableHighlight onPress={() => this._navigate()}>
<Text style={styles}>{pr.pageName}</Text>
</TouchableHighlight>
)
}