尽可能不要直接修改state中的数据,如:html
this.state.list.splice(xxx) this.setState({ list:this.state.list })
这样作确实能够生效,但应该遵循immutable的原则而尽可能避免直接修改state中的数据。函数
this.setState能够返回一个函数,也推荐你们尽可能使用函数式setstate,如:this
handleInputChange(e){ const value = e.target.value this.setState(()=>({ inputValue: value })) }
这里注意,咱们不能直接inputValue:e.target.value,而要先作一份拷贝,再使用,不然会报错。
tips: 函数体用()括住,表示函数体是一个直接return的对象,等同于:code
this.setState(()=>{ return { inputValue: value } })