を使用しないでください。なぜ私が店を持っ例えばforceUpdate()
class MyStore {
constructor() {
this.value = 1;
}
}
私はビューでMyStore.value
を取得し、変更する必要があります。
class MyView extends React.Component {
constructor() {
super();
this.state = {
value: MyStore.getValue()
};
}
をして、それを変更します:
私はそれを行うことができます
userClick() {
this.setState({value: MyStore.changeValue('newValue')});
}
をまたはストアでvalue
を変更して発する呼び出します。
しかし、私はforceUpdate()
でそれを行うことができます。
render() {
const value = MyStore.value;
return (
<div>{value}</div>
)
}
そして、それを変更します。
userClick() {
MyStore.value = 'newValue';
this.forceUpdate();
}
なぜそれが悪いのですか?
上mobXで
(それが状態を必要としないため、機能性成分を使用して)の例では、までboilds
Seのライブデモあなたに起こる変化をリッスンするためにしようとしていますそれが発生したときにUIを保存し、更新しますか? –
@ JohnF。はい、私は 'forceUpdate'でもっと簡単だと思います。リスナーなどを追加する必要はありません。 – Nick
あなたのアプローチはうまくいくはずですが、 'render()'で常に 'MyStore.value'を使うつもりなら、ローカルの' state'変数を維持する必要はありません。つまり、レンダリングで 'state.value'を使用することを選択した場合、最初のアプローチでは、' MyStore'を呼び出して値を変更し、それに応じてsetStateを呼び出します。 – lux