【发布时间】:2018-09-22 04:30:28
【问题描述】:
我的app.js 文件看起来像这样
export default class App extends React.Component {
render() {
return (
<Root style={{
flex: 1
}}>
<FcmHandler/>
</Root>
)
}
}
Root 组件是整个应用程序以及所有功能所在的位置,FcmHandler 是我处理与通知等相关的功能的位置。在FcmHandler 中,我有一个方法可以在收到通知时获取回调被点击,在这个回调中,我需要根据通知点击导航到应用程序中的特定屏幕。
问题是使用FcmHandler 组件上方的当前代码甚至从未被初始化。
如果我尝试这样的事情
export default class App extends React.Component {
render() {
return (
<View style={{
flex: 1
}}>
<Root/>
<FcmHandler/>
</View>
)
}
}
FcmHandler 组件被调用,但我无法访问位于 <Root/> 组件内的导航道具。
<Root/> 组件包含以下内容
const ArticleStack = StackNavigator(
{
...
}
);
const SettingsStack = StackNavigator({
...
});
export const Root = StackNavigator({
Articles: {
screen: ArticleStack
},
Settings: {
screen: SettingsStack
},
}, {
mode: 'modal',
headerMode: 'none'
});
我试图实现的基本目标是,当点击通知时,无论应用程序当前在哪个屏幕上,我都应该能够导航到特定屏幕。我不想在我拥有的每个屏幕组件中编写导航代码,这似乎是多余的。
【问题讨论】:
-
你在使用
redux-navigation吗?我可能有一个解决方案。 -
我不是,但如果你能告诉我解决方案,它可能会帮助我实现我的目标,或者可能帮助任何偶然发现这个问题的人。
标签: reactjs react-native react-router react-navigation react-native-navigation