Is there a better way to write this piece of code for readability and better understanding. I am trying to see if the same code can be written using a constructor.
The idea is to pass the input from a user in a particular field to another input field on another page onClick.
The first code part depicts the code for landing page and the second code depicts the redirected page and auto-input.
import React from 'react';
import './PhoneNumber.css';
import { NavLink,} from 'react-router-dom';
class PhoneNumber extends React.Component {
state = {
PhoneNumber: null,
}
savePhone(event) {
this.setState({ PhoneNumber: event.target.value })
}
render() {
const {PhoneNumber} = this.state;
return (
<div className="phonebar">
<input type="number" value={this.state.PhoneNumber} onChange={this.savePhone.bind(this)} min="0" max="9" placeholder="Enter your phone number" />
<NavLink to={`../SignUp/${PhoneNumber}`} ><button className="PhoneButton">Continue</button></NavLink>
</div>
)
}
}
export default PhoneNumber;
import React from 'react';
import './SignUp.css';
import TopMenu from '../TopMenu/TopMenu';
class SignUp extends React.Component {
state = {
phoneNumber: null,
}
componentDidMount = async () => {
this.setState({phoneNumber:this.props.match.params.contact || ""})
}
setPhone(event){
this.setState({ PhoneNumber: event.curr.value })
}
register(){
alert("register succesfiully")
}
handlePhone = (event) =>{
this.setState({ phoneNumber: event.currentTarget.value })
}
render() {
const {phoneNumber} = this.state;
return (
<div class="container">
<div class="underlay">
<TopMenu />
</div>
<div class="header">
<h2>Registration</h2> <br/><h4>Please complete the form with your details</h4>
<hr/>
</div>
<div class="reg_form">
{/* <input type="number" value={phoneNumber} onChange={this.handlePhone} placeholder="Enter your Phone Number" required /> */}
<input type="number" name="Phone Number" value={phoneNumber} onChange={this.handlePhone.bind(this)} maxlength="11" placeholder="Enter your Phone Number" autocomplete="on" required />
{/* <input type="number" name="Phone Number" value={this.state.phoneNumber} onChange={this.setPhone.bind(this)} maxlength="11" placeholder="Enter your Phone Number" autocomplete="on" autofocus required /> */}
<input type="text" name="FirstName" placeholder="Enter your First Name" required />
<input type="text" name="LastName" placeholder="Enter your Last Name" autocomplete="on" required />
<input type="email" name="EmailAddress" placeholder="Enter your Email Address." autocomplete="on" required />
<input type="text" name="Meter Number" max="9" placeholder="Enter your Meter Number" autocomplete="on" required />
<input type="password" name="Password" placeholder="Enter your Password" required/>
<select id="disco" name="disco" required>
<option value="australia">Select disco</option>
<option value="canada">Eko Electric</option>
<option value="usa">ADEC</option>
</select>
<button onClick={this.register.bind(this)}>Continue</button>
</div>
</div>
)
}
}
export default SignUp;