有时候,应用程序在后台接收通知时会崩溃。确切的问题-该应用程序在后台运行。通知发送到应用程序。收到通知后,App会尝试唤醒电话并导航到特定屏幕。有时,应用程序崩溃。我能够捕获该错误:
TypeError:null不是一个对象(正在评估“ t.dispatch”)
此错误位于: 旅店 在RCTView中 在RCTView中 在未知 在RCTView中 在c
在代码内部,这就是我正在做的事情:
在App.js中创建堆栈导航器
const LoadingStack = createStackNavigator(.....)
const AuthStack = createStackNavigator(....)
const RootStack = createStackNavigator(...)
然后创建AppContainer:
const AppContainer = createAppContainer(
createSwitchNavigator(
{
AuthLoading: LoadingStack,
App: RootStack,
Auth: AuthStack,
},
{
initialRouteName: 'AuthLoading',
}
)
);
基于某些条件的内部类应用程序,我将其称为NavigationService.navigate。
export default class App extends React.Component {
<lines of code>
NavigationService.navigate('Home');
<lines of code>
}
渲染中:
render() {
return <AppContainer
ref={navigatorRef => {
NavigationService.setTopLevelNavigator(navigatorRef);
}}
/>
}
// NavigationService.js
import { NavigationActions } from 'react-navigation';
let _navigator;
function setTopLevelNavigator(navigatorRef) {
_navigator = navigatorRef;
}
function navigate(routeName, params) {
console.log("Inside Navigation service. routeName: " + routeName);
_navigator.dispatch(
NavigationActions.navigate({
routeName,
params,
})
);
}
//添加所需的其他导航功能并将其导出
export default {
navigate,
setTopLevelNavigator,
};