我正在尝试将使用set state的现有应用程序转换为使用Mobx。如何使用mobx实现设置状态回调功能。我是否需要使用componentDidUpdate来实现此功能?
答案 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}
/>
);
}
};