2016-06-12 61 views
0

继我的第一个React教程。我的代码看起来和教程完全一样,但我的输入不会在表单组件中重置。我第一次提交时,一切正常,但国家坚持第一个价值。即使拨打console.log在回拨中拨打setState,似乎setState甚至不会触发。 this绑定在我的constructor函数中。React - setState不重置输入

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

this.setState是函数。您在函数onSubmit中有错字(=多余)。

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

More about setState

+1

唉,一个错字。谢谢! –