Я хочу добавить this.props.navigate на свой крючок. Это не мой компонент класса, поэтому у меня эта ошибка

TypeError: undefined не является объектом (оценка _this.props.navigation)

Как я могу передать реквизит конструктора сверху?

Также мои крючки

function LoginApp() {
    // Set an initializing state whilst Firebase connects
    const [initializing, setInitializing] = useState(true);
    const [user, setUser] = useState();
  
    // Handle user state changes
    function onAuthStateChanged(user) {
      setUser(user);
      if (initializing) setInitializing(false);
    }
    
    useEffect(() => {
      
      
      const subscriber = auth().onAuthStateChanged(onAuthStateChanged);
      return subscriber; // unsubscribe on unmount
    }, []);
  
    if (initializing) return null;
  
    if (!user) {
      return (
        <View>
          <Text style={{textAlign:'center', color:'white', fontSize:48}}>Connexion</Text>
          
         
          
        </View>
      );
    }

  
    
    return (
      
      <View>
        <Button onPress={()=> this.props.navigation.navigate('subscribe')}>Créer ma team</Button>
      </View>
    );
  }
0
Wendy Montagnon 11 Фев 2021 в 13:44

2 ответа

Лучший ответ
You can also navigate in hook by installing package
npm i @react-navigation/native 
then import it in your file as 
        import { useNavigation } from "@react-navigation/native";
        const LoginApp = ()=>{
        const navigation = useNavigation();
        return (
           <View>
             <Text onPress={() => navigation.navigate("Login")}>Login</Text>
           </View>
           );
          }
0
Rutuja Kherde 11 Фев 2021 в 13:04

this работает только в классе, не может работать в хуках, поэтому вы можете сделать следующее

function LoginApp({ navigation }) {
    return (
      <View>
        <Button onPress={()=> navigation.navigate('subscribe')}>Créer ma team</Button>
      </View>
    );
  }
1
Nooruddin Lakhani 11 Фев 2021 в 10:47
66153199