Extracting a Reusable Input
Merapihkan dan memisahkan code Input
Buat file baru di dalam folder Common dengan nama Input.jsx
import React from "react";
const Input = ({ name, label, value, onChange }) => {
return (
<>
<div className="form-group">
<label htmlFor={name}>{ label }</label>
<input
value={value}
onChange={onChange}
id={name}
name={name}
type="text"
className="form-control"
/>
</div>
</>
)
}
export default Input;
Ubah file LoginForm.jsx
import React, { Component } from "react";
import Input from './Common/Input';
class LoginForm extends Component {
state = {
account : {
username: '',
password: ''
}
}
handleSubmit = e => {
e.preventDefault();
// Call the server
const username = this.username.current.value;
console.log("submit")
}
handleChange = ({ currentTarget: input }) => {
const account = {...this.state.account};
account[input.name] = input.value;
this.setState({ account });
}
render(){
const { account } = this.state;
return (
<>
<div>
<h1>Login</h1>
<form onSubmit={this.handleSubmit} >
<Input
name="username"
value={account.username}
label="Username"
onChange={this.handleChange}
/>
<Input
name="password"
value={account.password}
label="Password"
onChange={this.handleChange}
/>
<button className="btn btn-primary">Login</button>
</form>
</div>
</>
)
}
}
export default LoginForm
Jadi nya akan tetap sama
Last updated
Was this helpful?