React - setState不重置输入

时间:2016-06-12 22:52:19

标签: reactjs

遵循我的第一个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>
  )
 }
}

1 个答案:

答案 0 :(得分:1)

this.setState是一个功能。您在函数=中输入了拼写错误(onSubmit)。

this.setState = ({...})替换为this.setState({name: ''})

More about setState