我不明白爲什麼我點擊提交按鈕時會得到一個空值。我得到: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 –