this.props.store
и prevProps.store
всегда будут ссылаться на один и тот же объект store
, поэтому isOpen
всегда будет одинаковым с обеих сторон оператора равенства.
Вместо этого можно использовать componentWillReact
ловушка жизненного цикла для запуска некоторого кода при обновлении компонента из-за изменения наблюдаемой.
const Home = observer(class home extends Component {
componentWillReact() {
alert('reset');
}
render() {
return (
this.props.store.isOpen
? <button onClick={this.props.store.close}>close</button>
: <button onClick={this.props.store.open}>open</button>
);
}
})