新的输入字段我有用户在其中输入自己的用户ID,如果有效,则API发送动态密码至用户的电话本登录组件。我想在验证后更改输入字段的状态,并在同一页面(同一输入字段)接受验证的otp编号。我怎样才能做到这一点 ?渲染上验证用户输入
我想只有一个输入框,在这里你验证用户名后输入用户ID,您有用户在相同的(尽管新)字段中输入的而不是2个输入字段密码。
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import axios from 'axios';
class Login extends Component {
constructor(props) {
super(props);
this.state = { value: '', authd: false, error: false };
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
this.deAuth = this.deAuth.bind(this);
}
handleChange(event) {
this.setState({ value: event.target.value });
event.preventDefault();
}
deAuth() {
this.setState({
authd: false,
});
}
handleSubmit(event) {
if (this.state.value != '') {
axios
.get(
`https://api.appspot.com/verifyClientID/client_id=${this
.state.value}`,
)
.then(res => {
console.log(res.data.message);
this.setState({ authd: true }); // user is authenticated
})
.then(axios.post('https://api.appspot.com/OTPGeneration', {
client_id: `${this
.state.value}`,
}))
event.preventDefault();
}
}
render() {
const authedForm = (this.state.authd) ? <h5 className="uk-text-center otp-sent-txt">Enter OTP that was sent to your registered mobile number.</h5>: <h5 className="uk-text-center"></h5>
return (
<div uk-grid>
<img src="image/logo.png" className="logo" alt="logo" />
<div className="uk-container">
<img
className="landing-image uk-align-center"
src="image/landing2.jpg"
/>
<h2 className="landing-text">Welcome Aboard!</h2>
</div>
{/*{this.state.authd && <MyModal resetAuth={this.deAuth} />}*/}
<form
className={`uk-align-center uk-form-width-medium ${this.state.error}`}
onSubmit={this.handleSubmit}
>
<div className="uk-margin">
<input
className="uk-input uk-text-center"
type="text"
placeholder="Client ID"
value={this.state.value}
onChange={this.handleChange}
/>
</div>
</form>
{authedForm}
<button
className="uk-button uk-button-primary uk-align-center login-btn"
onClick={this.handleSubmit}
>
Login
</button>
</div>
);
}
}
export default Login;
我们可以呈现一个新的输入字段和隐藏老在同一个地方? – Dynamic