у меня ниже кодовой базы
Экспо ссылка
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);
Ошибка броска
TypeError: TypeError: undefined не является функцией (вычисление '(0,
_react.useMemo) ')
Эта ошибка находится по адресу:
в ConnectFunction (созданный SceneView)
в SceneView (в StackViewLayout.js: 784)
в RCTView (на View.js: 45)
в представлении (в StackViewLayout.js: 783)
в RCTView (на View.js: 45)
в представлении (в StackViewLayout.js: 782)
в RCTView (на View.js: 45)
в представлении (в createAnimatedComponent.js: 153)
в AnimatedComponent (в StackViewCard.js: 69)
в RCTView (на View.js: 45)
в представлении (в createAnimatedComponent.js: 153)
в AnimatedComponent (в screens.native.js: 59)
на экране (в StackViewCard.js: 57)
в карточке (в createPointerEventsContainer.js: 27)
в контейнере (в StackViewLayout.js: 860)
в RCTView (на View.js: 45)
в представлении (at screens.native.js: 83)
в ScreenContainer (в StackViewLayout.js: 311)
в RCTView (на View.js: 45)
в представлении (в createAnimatedComponent.js: 153)
в AnimatedComponent (в StackViewLayout.js: 307)
в PanGestureHandler (в StackViewLayout.js: 300)
в StackViewLayout (в withOrientation.js: 30)
в withOrientation (в StackView.js: 79)
в RCTView (на View.js: 45)
на виду (на Transitioner.js: 214)
в Transitioner (в StackView.js: 22)
в StackView (создан Navigator)
в навигаторе (в createKeyboardAwareNavigator.js: 12)
в KeyboardAwareNavigator (создан SceneView)
в SceneView (созданный SwitchView)
в SwitchView (создан Navigator)
в навигаторе (в createAppContainer.js: 388)
в NavigationContainer (в App.js: 94)
в RCTView (на View.js: 45)
в представлении (в App.js: 93)
в провайдере (в App.js: 92)
в приложении (на renderApplication.js: 34)
в RCTView (на View.js: 45)
в представлении (на AppContainer.js: 98)
в RCTView (на View.js: 45)
в представлении (на AppContainer.js: 115)
в AppContainer (в renderApplication.js: 33)
Эта ошибка находится по адресу:
в NavigationContainer (в App.js: 94)
в RCTView (на View.js: 45)
в представлении (в App.js: 93)
в провайдере (в App.js: 92)
в приложении (на renderApplication.js: 34)
в RCTView (на View.js: 45)
в представлении (на AppContainer.js: 98)
в RCTView (на View.js: 45)
в представлении (на AppContainer.js: 115)
в AppContainer (в renderApplication.js: 33) ConnectFunction
D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-избыточно \ lib \ components \ connectAdvanced.js: 131: 41
updateFunctionComponent
D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \actate-native \ Библиотеки \ Renderer \ oss \ ReactNativeRenderer-dev.js: 11441: 29
updateSimpleMemoComponent
D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-нативный \ Библиотеки \ Renderer \ oss \ ReactNativeRenderer-dev.js: 11352: 4
updateMemoComponent
D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-нативный \ Библиотеки \ Renderer \ oss \ ReactNativeRenderer-dev.js: 11224: 8
BeginWork
D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-нативный \ Библиотеки \ Renderer \ oss \ ReactNativeRenderer-dev.js: 12824: 8
performUnitOfWork
D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-нативный \ Библиотеки \ Renderer \ oss \ ReactNativeRenderer-dev.js: 16075: 21
workLoop
D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-нативный \ Библиотеки \ Renderer \ oss \ ReactNativeRenderer-dev.js: 16115: 41
renderRoot
D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \actate-native \ Библиотеки \ Renderer \ oss \ ReactNativeRenderer-dev.js: 16219: 15
performWorkOnRootD: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \actate-native \ Libraries \ Renderer \ oss \ ReactNativeRenderer-dev.js: 17198: 17 executeWork D: \ Rnd \ React Native \ Проект \ WhoAroundMe \ node_modules \ реагироватьnative \ Libraries \ Renderer \ oss \ ReactNativeRenderer-dev.js: 17099: 24 executeSyncWork D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-native \ Libraries \ Renderer \ oss \ ReactNativeRenderer-dev.js: 17060:14 requestWork D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ react-native \ Libraries \ Renderer \ oss \ ReactNativeRenderer-dev.js: 16925: 19 scheduleWork D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \act-native \ Libraries \ Renderer \ oss \ ReactNativeRenderer-dev.js: 16724: 16 scheduleRootUpdate D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-родной \ Libraries \ Renderer \ oss \ ReactNativeRenderer-dev.js:17413: 15 updateContainerAtExpirationTime D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ Reaction-native \ Библиотеки \ 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 рендеринга D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-родной \ Libraries\ Renderer \ oss \ ReactNativeRenderer-dev.js: 18191: 20 renderApplication D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-native \ Libraries \ ReactNative \ renderApplication.js: 59: 34 выполнить D: \ Rnd \React Native \ Project \ WhoAroundMe \ node_modules \ react-native \ Libraries \ ReactNative \ AppRegistry.js: 101: 10 runApplication D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-собственный \ Библиотеки \ ReactNative \ AppRegistry.js: 195: 26 __callFunction D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-native \ Libraries \ BatchedBridge \ MessageQueue.js: 366: 47 D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагироватьnative \ Libraries \ BatchedBridge \ MessageQueue.js: 106: 26 __guard D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ реагировать-native \ Libraries \ BatchedBridge \ MessageQueue.js: 314: 10 callFunctionReturnFlushedQueue D: \ Rnd \ React Native \ Project \ WhoAroundMe \ node_modules \ Reaction-native \ Libraries \ BatchedBridge \ MessageQueue.js: 105: 17
Что я делаю неправильно, пожалуйста, помогите