遵循我的第一个React教程。我的代码似乎与教程完全一样,但我的输入不会在表单组件中重置。我第一次提交,一切正常,但状态保持第一个值。即使在回调中使用setState
调用console.log
,似乎setState
甚至无法触发。 this
功能绑定了constructor
。
import React, { Component } from 'react';
import TenantActions from '../actions/TenantActions';
export default class AddTenantForm extends Component {
constructor(props) {
super(props);
this.state = {
name: '',
}
this.onSubmit = this.onSubmit.bind(this);
}
onSubmit(event) {
event.preventDefault();
console.log('1. On Submit click, sending addNewTenant action w/', this.state);
TenantActions.addNewTenant(this.state);
this.setState = ({ name: '' });
}
render() {
return (
<form>
<div className="form-group">
<input type="text"
className="form-control"
id="tenantName"
placeholder="Bob Smithers"
value={this.state.name}
onChange={e => this.setState({ name: e.target.value })}
/>
</div>
<button className="btn btn-default"
onClick={this.onSubmit}
>Submit</button>
</form>
)
}
}
答案 0 :(得分:1)
this.setState
是一个功能。您在函数=
中输入了拼写错误(onSubmit
)。
将this.setState = ({...})
替换为this.setState({name: ''})