У меня есть простой класс React, аннотированный аннотацией MobX @observer
и простая структура данных (помеченная @observable data = { .. }
. Действие обновляет эту структуру, но выполняет рендеринг.
Вот исходный код class: -
import React, {Component, Fragment} from 'react';
import {observer} from "mobx-react";
import {observable} from "mobx";
import {withRouter} from 'react-router-dom';
@observer
@withRouter
class UpdateDetailsForm extends Component {
constructor(props) {
super(props);
this.onClick = this.onClick.bind(this);
}
@observable data = {
error: ""
};
onClick () {
this.data.error = "error has occurred";
console.log("Something has happened!"); // testing purposes
}
render() {
return (
<div>
<div className="red">[ {this.data.error} ]</div>
<input type="button" value="Click Me!" onClick={this.onClick} />
</div>
);
}
}
Однако, когда я нажимаю кнопку, консоль отображает ...
Something has happened!
... что доказывает, что состояние data
изменено, но HTML не обновляется.