3 Question: Réagir à une fonction indéfinie de redux connect

question créée à Tue, Apr 9, 2019 12:00 AM

J'ai ci-dessous la base de code

Lien Expo

https://snack.expo.io/@mparvez19861/redux-example

app.js

 <Provider store={store}>
                <View style={styles.container}>
                    <Navigator />
                </View>
            </Provider>

Navigator.js

const AuthStack = createStackNavigator({
  // { SignIn: SignInScreen }
  // SignIn: { screen: EmailPwdLogin }
    Login: { screen: LoginScreen },
    Signup: { screen: SignupScreen },
  });
const drNav = createDrawerNavigator(
  {

    Screen2: {
        screen: Screen2
      },
     SignOut: {
      screen: SignOutScreen
    }
  }
)

export default createAppContainer(createSwitchNavigator(
  {
    // screendesign: screendesign,
    SplashScreen: SplashScreen,
    App: drNav,
    AuthStack: AuthStack
  },
  {
    initialRouteName: 'SplashScreen',
  }
));

login.js

  import React, { Component } from 'react';
import { StyleSheet, View, Text, TextInput, Button, Alert } from 'react-native';
import { NavigationActions } from 'react-navigation';
import firebase from 'react-native-firebase';

import { connect } from 'react-redux';
import { getUserData, watchUserLogin } from '../redux/app-redux';



const mapStateToProps = (state) => {
    return {
        userData: state.userData,
    };
}

const mapDispatchToProps = (dispatch) => {
    return {
        getUserData: (user) => { dispatch(getUserData(user)) },
    };
}

class LoginScreen extends Component {

    constructor(props) {
        super(props);
        this.state = {
            userData: null,
            email: "",
            password: "",
        };
    }

    onLoginPress = () => {
        firebase.auth().signInWithEmailAndPassword(this.state.email, this.state.password)
            .then((user) => {
                //this.state.userData = user;
                this.setState({ userData: user })
                this.onGetUserData(user);
               // this.props.navigation.navigate("friendsOnWay");
            }, (error) => { Alert.alert(error.message); });
    }

    onGetUserData = (user) => {
        this.props.getUserData(user);
    }

    onCreateAccountPress = () => {
        // var navActions = NavigationActions.reset({
        //     index: 0,
        //     actions: [NavigationActions.navigate({routeName: "Signup"})]
        // });
        // this.props.navigation.dispatch(navActions);
        // this.props.navigation.navigate("Signup");
    }



    render() {
        return (
            <View style={{ paddingTop: 50, alignItems: "center" }}>

                <Text>Login</Text>

                <TextInput style={{ width: 200, height: 40, borderWidth: 1 }}
                    value={this.state.email}
                    onChangeText={(text) => { this.setState({ email: text }) }}
                    placeholder="Email"
                    keyboardType="email-address"
                    autoCapitalize="none"
                    autoCorrect={false}
                />

                <View style={{ paddingTop: 10 }} />

                <TextInput style={{ width: 200, height: 40, borderWidth: 1 }}
                    value={this.state.password}
                    onChangeText={(text) => { this.setState({ password: text }) }}
                    placeholder="Password"
                    secureTextEntry={true}
                    autoCapitalize="none"
                    autoCorrect={false}
                />

                <Button title="Login" onPress={this.onLoginPress} />
                <Button title="Create account..." onPress={this.onCreateAccountPress} />
            </View>
        );
    }
}

const styles = StyleSheet.create({

});

export default connect(mapStateToProps, mapDispatchToProps)(LoginScreen);

Erreur de projection

  

TypeError: TypeError: undefined n'est pas une fonction (evaluation '(0,   _react.useMemo) ')

     

Cette erreur est située à:       dans ConnectFunction (créé par SceneView)       dans SceneView (à StackViewLayout.js: 784)       dans RCTView (at View.js: 45)       in View (at StackViewLayout.js: 783)       dans RCTView (at View.js: 45)       in View (at StackViewLayout.js: 782)       dans RCTView (at View.js: 45)       dans la vue (à createAnimatedComponent.js: 153)       dans AnimatedComponent (à StackViewCard.js: 69)       dans RCTView (at View.js: 45)       dans la vue (à createAnimatedComponent.js: 153)       dans AnimatedComponent (at screens.native.js: 59)       à l'écran (sur StackViewCard.js: 57)       in Card (sur createPointerEventsContainer.js: 27)       dans un conteneur (à StackViewLayout.js: 860)       dans RCTView (at View.js: 45)       in View (at screens.native.js: 83)       dans ScreenContainer (à StackViewLayout.js: 311)       dans RCTView (at View.js: 45)       dans la vue (à createAnimatedComponent.js: 153)       dans AnimatedComponent (at StackViewLayout.js: 307)       dans PanGestureHandler (à StackViewLayout.js: 300)       dans StackViewLayout (à withOrientation.js: 30)       dans withOrientation (sur StackView.js: 79)       dans RCTView (at View.js: 45)       in View (at Transitioner.js: 214)       dans Transitioner (à StackView.js: 22)       dans StackView (créé par Navigator)       dans Navigator (à createKeyboardAwareNavigator.js: 12)       dans KeyboardAwareNavigator (créé par SceneView)       dans SceneView (créé par SwitchView)       dans SwitchView (créé par Navigator)       dans Navigator (à createAppContainer.js: 388)       dans NavigationContainer (à App.js: 94)       dans RCTView (at View.js: 45)       in View (at App.js: 93)       dans fournisseur (à App.js: 92)       dans App (à renderApplication.js: 34)       dans RCTView (at View.js: 45)       in View (at AppContainer.js: 98)       dans RCTView (at View.js: 45)       in View (at AppContainer.js: 115)       dans AppContainer (à renderApplication.js: 33)

     

Cette erreur est située à:       dans NavigationContainer (à App.js: 94)       dans RCTView (at View.js: 45)       in View (at App.js: 93)       dans fournisseur (à App.js: 92)       dans App (à renderApplication.js: 34)       dans RCTView (at View.js: 45)       in View (at AppContainer.js: 98)       dans RCTView (at View.js: 45)       in View (at AppContainer.js: 115)       dans AppContainer (à renderApplication.js: 33) ConnectFunction       D: \Rnd \React natif \Projet \WhoAroundMe \module_noeud \react-redux \lib \composants \connectAdvanced.js: 131: 41   updateFunctionComponent       D: \Rnd \React Native \Project \WhoAroundMe \node_modules \react-native \Libraries \Renderer \oss \ReactNativeRenderer-dev.js: 11441: 29   updateSimpleMemoComponent       D: \Rnd \React Native \Project \WhoAroundMe \node_modules \react-native \Libraries \Renderer \oss \ReactNativeRenderer-dev.js: 11352: 4   updateMemoComponent       D: \Rnd \React Native \Projet \WhoAroundMe \node_modules \react-native \Bibliothèques \Renderer \oss \ReactNativeRenderer-dev.js: 11224: 8   Commencer le travail       D: \Rnd \React Native \Projet \WhoAroundMe \node_modules \react-native \Bibliothèques \Renderer \oss \ReactNativeRenderer-dev.js: 12824: 8   performUnitOfWork       D: \Rnd \React Natif \Project \WhoAroundMe \node_modules \react-native \Bibliothèques \Renderer \oss \ReactNativeRenderer-dev.js: 16075: 21   WorkLoop       D: \Rnd \React Native \Projet \WhoAroundMe \node_modules \react-native \Bibliothèques \Renderer \oss \ReactNativeRenderer-dev.js: 16115: 41   renderRoot       D: \Rnd \React Native \Projet \WhoAroundMe \node_modules \react-native \Bibliothèques \Renderer \oss \ReactNativeRenderer-dev.js: 16219: 15   performWorkOnRoot       D: \Rnd \React Native \Projet \WhoAroundMe \node_modules \react-native \Bibliothèques \Renderer \oss \ReactNativeRenderer-dev.js: 17198: 17   travail performant       D: \Rnd \React Native \Project \WhoAroundMe \node_modules \react-native \Libraries \Renderer \oss \ReactNativeRenderer-dev.js: 17099: 24   effectuerSyncWork       D: \Rnd \React Natif \Project \WhoAroundMe \node_modules \react-native \Libraries \Renderer \oss \ReactNativeRenderer-dev.js: 17060: 14   requestWork       D: \Rnd \React Native \Projet \WhoAroundMe \node_modules \react-native \Bibliothèques \Renderer \oss \ReactNativeRenderer-dev.js: 16925: 19   scheduleWork       D: \Rnd \React Natif \Project \WhoAroundMe \node_modules \react-native \Bibliothèques \Renderer \oss \ReactNativeRenderer-dev.js: 16724: 16   scheduleRootUpdate       D: \Rnd \React Native \Projet \WhoAroundMe \node_modules \react-native \Bibliothèques \Renderer \oss \ReactNativeRenderer-dev.js: 17413: 15   updateContainerAtExpirationTime       D: \Rnd \React Native \Project \WhoAroundMe \node_modules \react-native \Libraries \Renderer \oss \ReactNativeRenderer-dev.js: 17447: 28   updateContainer       D: \Rnd \React Native \Project \WhoAroundMe \node_modules \react-native \Libraries \Renderer \oss \ReactNativeRenderer-dev.js: 17537: 4   rendre       D: \Rnd \React Native \Projet \WhoAroundMe \node_modules \react-native \Bibliothèques \Renderer \oss \ReactNativeRenderer-dev.js: 18191: 20   renderApplication       D: \Rnd \React Native \Project \WhoAroundMe \node_modules \react-native \Libraries \ReactNative \renderApplication.js: 59: 34 run       D: \Rnd \React Native \Projet \WhoAroundMe \node_modules \react-native \Bibliothèques \ReactNative \AppRegistry.js: 101: 10   runApplication       D: \Rnd \React Native \Projet \WhoAroundMe \node_modules \react-native \Bibliothèques \ReactNative \AppRegistry.js: 195: 26   __callFunction       D: \Rnd \React Natif \Project \WhoAroundMe \node_modules \react-native \Libraries \BatchedBridge \MessageQueue.js: 366: 47          D: \Rnd \React Native \Projet \WhoAroundMe \node_modules \react-native \Bibliothèques \BatchedBridge \MessageQueue.js: 106: 26   __garde       D: \Rnd \React Natif \Project \WhoAroundMe \node_modules \react-native \Libraries \BatchedBridge \MessageQueue.js: 314: 10   callFunctionReturnFlushedQueue       D: \Rnd \React Native \Project \WhoAroundMe \node_modules \react-native \Libraries \BatchedBridge \MessageQueue.js: 105: 17

Ce que je fais mal, aidez-moi s'il vous plaît

    
3
  1. S'agit-il de votre pile ou y a-t-il plus?
    2019-04-09 13: 15: 18Z
  2. Erreur complète mise à jour
    2019-04-09 13: 27: 33Z
  3. Votre fournisseur Redux entoure-t-il le navigateur racine (react-navigation)?
    2019-04-09 13: 29: 36Z
  4. J'ai mis à jour le fichier de navigateur
    2019-04-09 13: 32: 18Z
  5. Quand l'erreur se produit-elle lorsque vous cliquez sur un bouton ou que vous exécutez simplement l'application?
    2019-04-09 13: 35: 45Z
3 réponses                              3                         

La version 7.0.1 de redux-sagas "requiert désormais une version React minimale de 16.8.4 ou supérieure."

    
1
2019-04-10 09: 55: 51Z
  1. Thx, ça a fonctionné pour moi.
    2019-04-18 16: 35: 09Z

J’ai eu le même problème, j’ai utilisé la version native 0.58.6 de react-native et la version 6.0.1 de react-redux et cela a bien fonctionné.

    
1
2019-04-11 07: 51: 36Z

J'ai eu la même erreur. J'ai mis à jour mes versions pour réagir et réagir nativement à la dernière version ainsi que pour redux et réagir-redux. C'est résolu alors. L'espoir fonctionne pour vous aussi.

    
1
2019-04-14 13: 53: 27Z
source placée ici