问题
表单的数据在提交时没有传递给handleSubmit()
函数。我究竟做错了什么?
形式
import React from 'react'
import { reduxForm } from 'redux-form'
export const fields = ['email', 'password']
const validate = (values) => {
const errors = {}
return errors
}
export class SignUp extends React.Component {
props: Props;
render() {
const {
fields: { email, password },
handleSubmit
} = this.props
return (
<form onSubmit={handleSubmit}>
<div>
<label>Email</label>
<div>
<input type="email" placeholder="you@gmail.com" {...email}/>
</div>
</div>
<div>
<label>Password</label>
<div>
<input type="password" placeholder="Password" {...password}/>
</div>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
)
}
}
SignUp = reduxForm({
form: 'SignUp',
fields,
validate
})(SignUp)
export default SignUp
表单的父级
export class SignUpView extends React.Component {
props: Props;
constructor(props) {
super(props)
this.onSignUp = this.onSignUp.bind(this)
}
onSignUp(data) {
console.log(data) <-- data is just an empty Object {}
this.props.signUp({
email: email,
password: password
});
}
render() {
var fields = {
email: '',
password: ''
}
return (
<div>
<h1>Sign Up Form</h1>
<SignUpForm
fields={fields}
onSubmit={this.onSignUp}
/>
</div>
)
}
}