おはよう!そのためMobX:割り当て後に再レンダー
@observer
class ToDos extends Component {
componentWillMount() {
this.state = new State();
this.onClearAllCompleted = this.onClearAllCompletedHandler.bind(this);
}
onClearAllCompletedHandler() {
this.state.clearAllCompleted();
}
render() {
const todos = this.state.todos;
return (
<Provider todos={todos}>
{this.props.children}
<ClearAllButton onClick={this.onClearAllCompleted} />
</Provider>
);
}
}
と国家クラス:MobX Provider: Provided store 'todos' has changed. Please avoid replacing stores as the change might not propagate to all children
:
class TodosState {
@observable todos = [
{ title: 'Sleep', completed: true },
{ title: 'Sleep more', completed: false },
{ title: 'Sleep more than before', completed: false }
];
@action
clearAllCompleted() {
this.todos = this.todos.filter(todo => !todo.completed);
}
}
私はすべて完了したドスをクリアしようと、それは彼らが、ブラウザのコンソールに警告をクリアし
は私が親コンポーネントを持っています。この何も後
が起こる:私は古いレンダリングされたHTMLを持っている。(
をだから、私は子供が一つのオブジェクトへの参照ドスの観察可能なオブジェクトを持っており、状態の割り当てた後、私は別の参照を持っていると思いチャイルズが知ってはいけません。 。この、およびその観察可能な、私はこのケースで何ができるか、だから、全く変わっていません