我是原生反应新手,这是我第一次实现推送通知。我将导航定义在一个单独的文件夹中,其中有 3 个不同的用户角色导航。下面是我的 App.js 文件,其中包含通知处理程序。
export default function App(props) {
const [fontLoaded, setFontLoaded] = useState(false);
useEffect(() => {
Notifications.addListener((notification) => {
console.log("notification", notification);
Vibration.vibrate();
const {
data: { message },
origin,
} = notification;
if(origin === "selected"){
props.navigation.navigate("Agent")
}
else if (origin === "received")
Alert.alert("New Push Notification", message, [{ text: "OK" }]);
});
}, []);
if (!fontLoaded) {
return (
<AppLoading
startAsync={fetchFont}
onFinish={() => setFontLoaded(true)}
onError={(err) => {
console.log(err);
}}
/>
);
}
return (
<Provider store={store}>
<AppNavigation
ref={(navigator) => {
setNavigator(navigator);
}}
/>
</Provider>
);
}
我无法导航到不同的屏幕,因为我收到错误 props.navigation.navigate 未定义。如果我错过了提供任何其他详细信息,请提及它,我希望有人能帮助我。