Моя функция обратного вызова "login" вызывается правильно, когда onSubmit вызывается в моем компоненте LoginForm, но часть кода async / await пропускается.Console.log 1 и 2 вызываются, и я вижу их в консоли, но console.log 3, который находится внутри части кода async / await, никогда не запускается.Он пропускается, а затем вызывается console.log 4.Любая помощь будет принята с благодарностью.
import React from 'react';
import { Form, Segment, Button, Label } from 'semantic-ui-react';
import { connect } from 'react-redux'
import { withFirebase } from 'react-redux-firebase'
import { Field, reduxForm, SubmissionError } from 'redux-form';
// import { login } from '../authActions'
class LoginForm extends React.Component {
render(){
const { handleSubmit, error, firebase} = this.props
console.log('4: LoginForm->render->firebase:',firebase)
const myLogin = (credentials) => {
console.log('1: myLogin fired',credentials)
const {firebase} = this.props;
console.log('2: myLogin -> firebase',firebase)
return async (firebase)=> {
console.log('3: async -> myLogin -> firebase: ', firebase)
try {
await firebase.auth().signInWithEmailAndPassword(credentials.email,
credentials.password);
console.log('try fired')
} catch (error) {
console.log(error);
throw new SubmissionError({
_error: 'Login failed'
})
}
}
}
return (
<Form size="large" onSubmit={handleSubmit(myLogin)}>
<Segment>
<Field
name="email"
component={Form.Input}
type="text"
placeholder="Email Address"
/>
<Field
name="password"
component={Form.Input}
type="password"
placeholder="password"
/>
{error && <Label basic color='red'>{error}</Label>}
<Button fluid size="large" color="teal">
Login
</Button>
</Segment>
</Form>
);
};
};
const mapState = (state) => ({
firebase: state.firebase
})
//Attempted to use an action creator to log use in, but couldn't get it to work so I moved the auth call inside the component and called it myLogin
// const actions = {
// login
// }
export default withFirebase(
connect(mapState, null)(reduxForm({form: 'loginForm'})(LoginForm))
)