使用回调来处理set状态的Mobx方法是什么

时间:2016-11-22 21:26:16

标签: javascript reactjs mobx

我正在尝试将使用set state的现有应用程序转换为使用Mobx。如何使用mobx实现设置状态回调功能。我是否需要使用componentDidUpdate来实现此功能?

1 个答案:

答案 0 :(得分:1)

您是正确的,当使用MobX重新渲染组件时,您需要使用componentDidUpdate来执行自定义逻辑。可观察值将同步更新,但组件将像往常一样异步重新渲染。

示例(JSBin

@observer 
class App extends Component {
  @observable value = ''

  componentDidMount() {
    setTimeout(() => this.value = 'focus', 1000);
  }

  componentDidUpdate() {
    this.ref.focus();
  }

  render() {
    return (
      <input
        ref={ref => this.ref = ref}
        value={this.value}
        onChange={e => this.value = e.target.value}
      />
    );
  }
};