使用redux Provider时出现反应导航错误

问题描述 投票:0回答:1

我在使用react-navigation的react-native应用程序中实现redux。在尝试实现redux之前,反应导航已经开始工作。我的代码是:

  render(){
      if (this.state.loggedAndVerifiedOrNot) {
            this.props.navigation.navigate('Menu');        
      }
      else {
            this.props.navigation.navigate('Login');
      }
      return(null)
  }

为了集成redux和提供程序,我用以下命令替换了return(null)部分:

      return (
         <Provider store={Store}>
           <App/>
         </Provider>
      )

我有TypeError:未定义不是一个对象(正在评估'this.props.navigation.navigate']我不知道问题是从哪里来的,我对响应导航没有做任何更改。

完整代码:

import React from 'react';
import { View, Text, Button, Image, TouchableOpacity, StyleSheet } from 'react-native';
import { createStackNavigator, StackActions, NavigationActions } from 'react-navigation';
import Listing from './Listing';
import Menu from './Menu';
import Login from './Login';
import TestRedux from './redux/Components/TestRedux';
import firebase from '@firebase/app'
import '@firebase/auth'

firebase.initializeApp({
    XXXXXXXXXXX
});

export class App extends React.Component {
  constructor(props){
    super(props);
    this.state = {
      user:'',
      loggedAndVerifiedOrNot: false
    }

   firebase.auth().onAuthStateChanged((user) => {
      if (user != null) {
            if (user.emailVerified!=null)
            {
              if (user.emailVerified == true)
              this.setState({loggedAndVerifiedOrNot: true})
            }
      }
    });
  }

  render(){
      if (this.state.loggedAndVerifiedOrNot) {
            this.props.navigation.navigate('Menu');        
      }
      else {
            this.props.navigation.navigate('Login');
      }
      //return(null)
      return (
           <Provider store={Store}>
             <App/>
           </Provider>
      )
  }
}

export default createStackNavigator({
    Home: {
      screen: App,
    },
    Login: {
      screen: Login,
    },
    Menu: {
      screen: Menu,
    },
    Listing: {
      screen: Listing,
    },
    TestRedux: {
      screen: TestRedux,
    },
  },
  {
    initialRouteName: 'Home',
  }
);

你知道是什么问题吗?

reactjs redux react-navigation
1个回答
1
投票

[我首先看到的是您正在App组件中渲染<App />。似乎是个问题]

我也不会输入此代码

firebase.auth().onAuthStateChanged((user) => {
  if (user != null) {
        if (user.emailVerified!=null)
        {
          if (user.emailVerified == true)
          this.setState({loggedAndVerifiedOrNot: true})
        }
  }
});

在您的构造函数中,但在ComponentDidMount()


0
投票

相同的错误,您如何解决?

© www.soinside.com 2019 - 2024. All rights reserved.