我不明白为什么我点击提交按钮时会得到一个空值。我得到:You have submitted: {}
。当我点击Reset data
-button时,问题是一样的。根据我的理解,结果应该是{"firmName":"test"
}。我无法让它工作。任何帮助或建议是非常感激。为什么我在reactJs中从Redux表单获得空值?
class FirmDataTab extends Component {
constructor(props) {
super(props);
this.state = {
firmName: 'test'
};
this.reset = this.reset.bind(this);
}
reset() {
this.setState = {
firmName: ''
};
}
render() {
const { handleSubmit } = this.props;
return(
<form onSubmit={ handleSubmit }>
<div className="jumbotron">
<div>
<label>Firm name</label>
<div style={{marginTop: -22, marginLeft: 80}}>
<input
name="firmnname"
type="text"
defaultValue={this.state.firmName} />
</div>
</div>
<div>
<FormGroup>
<Col smOffset={2} sm={10}>
<button
type="submit"
className="btn btn-info" style={{marginLeft: -40, marginRight: 20, marginTop: 10}}> Submit </button>
<button onClick={this.reset}> Reset data </button>
</Col>
</FormGroup>
</div>
</div>
</form>
);
}
}
FirmDataTab .propTypes = {
handleSubmit: PropTypes.func.isRequired
};
export default reduxForm({
form: 'TestForm'
})(FirmDataTab);
'@Phi Nguyen'我改成了'value',但仍然是同样的问题。另外,我得到:'失败的形式propType:你提供了一个'值'道具的表单字段没有'onChange'处理程序。这将呈现一个只读字段。如果该字段应该是可变的,则使用'defaultValue'。否则,请设置“onChange”或“readOnly”。检查'FirmDataTab'的渲染方法。 – carl
@carl当输入值改变时,你应该创建一个事件处理程序。检查这个例子。 https://facebook.github.io/react/docs/lifting-state-up.html –