I'm doing a simple fetch from my backend express server.
- First "Submit" button click, I get "undefined".
- Second time "Submit" button click, I get my data as expected.
This would work but the user would need to click login twice (not ideal)
How can I get the results from the user's first click?
import React from "react";
import { Button, FormGroup, FormControl, FormLabel } from "react-bootstrap";
import "./Login.css";
class Login extends React.Component {
constructor(props) {
super(props);
this.state = {
data: []
};
this.handleSubmit = this.handleSubmit.bind(this);
}
handleSubmit(event) {
event.preventDefault();
fetch('/users')
.then(response => response.json())
.then(data => this.setState({ data }))
console.log(this.state.data[0]);
}
render() {
return (
<div className="Login">
<form onSubmit={this.handleSubmit}>
<FormGroup controlId="email" bssize="large">
<FormLabel>Email</FormLabel>
<FormControl
autoFocus
type="email"
value={this.email}
//onChange={e => setEmail(e.target.value)}
/>
</FormGroup>
<FormGroup controlId="password" bssize="large">
<FormLabel>Password</FormLabel>
<FormControl
value={this.password}
// onChange={e => setPassword(e.target.value)}
type="password"
/>
</FormGroup>
<Button block bssize="large" type="submit">
Login
</Button>
</form>
</div>
);
}
}
export default Login;
***For testing, I'm using "console.log(this.state.data[0]);"
