我有一个警告要触发组件的componentDitMount,它不是初始路由(在本例中是MainHome)。但是当加载另一个初始组件(MySchedule)时,它会显示警报。路线是:
export default class Example extends React.Component {
render() {
return <Router createReducer={reducerCreate}>
<Scene key="modal" component={Modal} >
<Scene key="root" hideNavBar={true}>
<Scene key="tabbar" component={NavigationDrawer}>
<Scene key="main" tabs={true} default="tab2" >
<Scene key="my_schedule" component={MySchedule} hideTabBar={true} navBar={NavBar} initial={true} />
<Scene key="intro" component={Initial} hideTabBar={true} navBar={NavBar} />
<Scene key="home" component={Home} hideTabBar={true} navBar={NavBar} />
<Scene key="main_home" component={MainHome} hideTabBar={true} navBar={NavBar} />
</Scene>
</Scene>
</Scene>
<Scene key="error" component={Error}/>
</Scene>
</Router>;
}
}
在组件MainHome的componentDidMount中,会触发警报。
componentDidMount() {
Alert.alert(
'“Welcome...',
[
{text: 'OK'}
]
);
}
所以在初始组件中(在这种情况下是MySchedule)不应该显示警报但是它确实存在,我无法弄清楚原因。非常感谢您的帮助。
答案 0 :(得分:0)
这就是NavigationView的工作原理。
<View
style={this.props.style}>
{this.props.navigationState.children.map(this._renderScene)}
</View>
NavigationExperimental正在改变很多,所以这可能会改变。