反应中是否有状态突变观察者?

Mar*_*ahn 4 javascript reactjs

tl;dr——我想在组件状态改变时触发回调


我有一个组件,它会发生变异this.props.itemsthis.props.onChange在每次变异时触发。我目前正在做这样的事情:

removeItem(ix) {
  const items = this.state.items.slice();
  items.splice(ix, 1);
  this.setState({ items });
  this.triggerOnChange();
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以删除手动调用triggerOnChange,而是在this.state.items更新时进行

The*_*son 5

this.setState 有两个参数,第一个是对象(状态),第二个是回调(可选)

this.setState({...}, function(){
  console.log('changed')
})
Run Code Online (Sandbox Code Playgroud)

Spec

第二个参数是一个可选的回调函数,一旦 setState 完成并重新渲染组件就会执行