javascript - react-navigation TypeError 未定义错误
问题描述
我正在使用 react native,现在当我尝试安装加载组件时出现以下错误。
TypeError: undefined is not an object (评估 'this.props.navigation.navigate')
这是我的代码
import React from 'react';
import SplashScreen from 'react-native-splash-screen';
import Loading from '../../components/loading/Loading';
import { connect } from 'react-redux';
class LoadingContainer extends React.Component {
componentDidMount() {
setTimeout(() => {
SplashScreen.hide();
}, 300);
let initRoute;
if (this.props.auth.user) {
initRoute = 'App';
} else {
initRoute = 'Login';
}
this.props.navigation.navigate(initRoute);
}
render() {
return <Loading navigation={this.props.navigation} />;
}
}
const mapStateToProps = state => ({
auth: state.auth,
});
export default connect(mapStateToProps, null)(LoadingContainer);
我是第一次在使用 react-navigation 时收到此错误,我使用的是 react-navigation 2.11.2 版
解决方案
为什么不使用 react-navigation v4.x?
对于 v2.x,您的导航配置可能是这样的
import React from 'react';
import { createStackNavigator } from 'react-navigation';
import LoadingContainer from '../containers/LoadingContainer/LoadingContainer';
import Login from '../containers/LoginContainer/Login';
const AppStack = createStackNavigator(
{
Loading: LoadingContainer,
Login: Login,
},
{
initialRouteName: 'Loading',
}
);
export default class App extends React.Component {
render() {
return <AppStack />
}
}
推荐阅读
- arrays - 有没有办法在没有 usinf for 循环的情况下取消嵌套和取消列出 MongoDb 查询内联?
- bootstrap-select - 如何在 Bootstrap-Select 中禁用/启用 Select?
- swift - 如何在 NSCellTextView Swift 5 中不截断文本
- node.js - 如何从 nodejs 中运行和启动 mongodb
- xamarin - Xamarin Forms 未在 Android 中显示警报但在 ios 中工作正常
- rust - 哪些 Rust 1.2 容器支持 trait 对象?
- scala - 如何只创建一次常量
- javascript - 如何在出现提示之前隐藏 div
- android - 为简单项目创建 APK 的 FlashDevelop 错误
- android - 如何设置意图过滤器的显示文本?