這是我的登錄頁面:如何在React JS中使用Redux和Axios?
class Login extends Component {
/*define constructor for state props*/
constructor() {
super();
this.state = {
email: '',
password: ''
};
this.handleSubmit = this.handleSubmit.bind(this);
this.handleChange = this.handleChange.bind(this);
}
/*Define the after submit form*/
handleSubmit(e) {
// Stop browser from submitting the form.
e.preventDefault();
this.form.validateFields();
if (!this.form.isValid()) {
console.log("Not valid arguments");
} else {
This is my function for Axios post values
Validate here or directly when setting state.
Then send a POST request to your endpoint.
axios.post('http//127.0.0.1:8000/user/login', {
email: this.state.email,
password: this.state.password
})
.then(function(response) {
/*response from json*/
console.log(response);
})
.catch(function(error) {
console.log(error);
});
}
}
handleChange(e) {
this.form.validateFields(e.currentTarget);
this.setState({
[e.target.name]: e.target.value
});
}
render() {
return(
<div className="container">
<h3 className="jumbotron">Redux Form Validation</h3>
<FormCode onSubmit={this.submit} />
</div>
這是使用終極版的表單
在前面定義的驗證我的驗證功能
const validate = values => { const errors = {} if (!values.password) { errors.password = 'Required' } else if (values.password.length > 15) { errors.password = 'Must be 15 characters or less' } if (!values.email) { errors.email = 'Required' } else if (!/^[A-Z0-9._%+-][email protected][A-Z0-9.-]+.[A-Z]{2,4}$/i.test(values.email)) { errors.email = 'Invalid email address' } return errors }
const renderField = ({ input, label, type, meta: { touched, error, warning } }) => ( <div> <label className="control-label">{label}</label> <div> <input {...input} placeholder={label} type={type} className="form-control" /> {touched && ((error && <span className="text-danger">{error}</span>) || (warning &&
{warning}))} )
let FormCode = props => { const { handleSubmit, pristine, submitting } = props; return ( <form onSubmit={ handleSubmit }> <div className="form-group"> <Field name="firstName" component={renderField} label="First Name" /> </div> <div className="form-group"> <Field name="lastName" component={renderField} label="Last Name" /> </div> <div className="form-group"> <Field name="email" component={renderField} label="Email" /> </div> <div className="form-group"> <button type="submit" disabled={pristine || submitting} className="btn btn-primary">Submit</button> </div> </form> ) } FormCode = reduxForm({ form: 'contact', validate, })(FormCode);
export default FormCode;
I'm收到此錯誤:
Uncaught Error: You must either pass handleSubmit() an onSubmit function or pass onSubmit as a prop
'dispatch'這個函數怎麼樣 – shahabvshahabi
@shahabvshahabi我的另一個問題是它的語法是否正確。 –
我真的沒有任何有關redux的知識,但我建議你使用'mobX',它比如此強大 – shahabvshahabi