【发布时间】:2016-12-17 22:51:17
【问题描述】:
React-Redux 的新手。提交表单时遇到问题。
我收到这条消息:
不是错误,但我不完全确定如何处理。我重新创建此问题的代码如下。它使用本地状态在注册和登录表单之间切换。想知道是否有两种形式是问题,尽管渲染语句只返回两者之一。能得到一些专家的建议会很棒:)
import React, { Component } from 'react';
import { Field, reduxForm } from 'redux-form';
class Login extends Component {
constructor(props) {
super(props);
this.state = { showLoginForm: false }
}
changeLoginFormState(e) {
e.preventDefault();
this.state.showLoginForm ? this.setState({showLoginForm: false}) : this.setState({showLoginForm: true});
return false;
}
handleFormSubmit(values) {
console.log(values);
}
signUpForm() {
return (
<div>
<div className="auth-container">
<form className="centerform" onSubmit={this.handleFormSubmit}>
<fieldset>
<label htmlFor="email">Email</label>
<input type="email" id="email" className="form-field" id="email"/>
</fieldset>
<fieldset>
<label htmlFor="password">Password</label>
<input type="password" className="form-field" id="password"/>
</fieldset>
<fieldset>
<label htmlFor="passwordConfirm">Confirm Password</label>
<input type="password" className="form-field" id="passwordConfirm"/>
</fieldset>
<p><a onClick={e => this.changeLoginFormState(e)}>If you already have an account, Login here</a></p>
<button className="btn btn-auth">Sign Up</button>
</form>
</div>
</div>
);
}
loginForm() {
return (
<div>
<div className="auth-container">
<form className="centerform" onSubmit={this.handleFormSubmit}>
<fieldset>
<label htmlFor="email">Email</label>
<Field name="email" component="input" type="email" id="email" className="form-field"/>
</fieldset>
<fieldset>
<label htmlFor="password">Password</label>
<Field name="password" component="input" type="password" id="password" className="form-field"/>
</fieldset>
<fieldset>
<label htmlFor="passwordConfirm">Confirm Password</label>
<Field name="passwordConfirm" component="input" type="password" id="passwordConfirm" className="form-field"/>
</fieldset>
<p><a href="#"
onClick={e => this.changeLoginFormState(e)}>Don't have an account? Sign Up Here</a></p>
<button className="btn btn-auth">Login</button>
</form>
</div>
</div>
);
}
render() {
if (this.state.showLoginForm) {
return this.loginForm();
} else {
return this.signUpForm();
}
}
}
export default reduxForm({
form: 'authentication'
})(Login);
【问题讨论】:
标签: reactjs redux redux-form