observable.map()
のマップ/トランスフォームを作成するにはどうすればよいですか?例えばMobXマップマップ
Iは、それらid
sはキーであると、Todos
のobservable.map()
を持っている場合:
var Todos = observable.map({
'rf8r4': {id: 'rf8r4', description: 'Get milk'},
'543w4': {id: '543w4', description: 'Code in MobX'},
'099i0': {id: '099i0', description: 'Sleep'}
})
どのように自動的にtrue
(をデフォルトvisible
プロパティを含む例えばように、UI状態observable.map()
を生成することができます
ui_state = observable.map({
'rf8r4': {visible: true}, // defaults
'543w4': {visible: false}, // changed to false after some user interaction
'099i0': {visible: true}
})
が、必ず各藤堂のSTことを行います。)キーは上記Todos
のものに対応気づきます(visible
プロパティがまだfalse
あるか543w4
年代に気づく)
Todos.set('grtg6', {id: 'grtg6', description: 'Read StackOverflow'})
になる必要があります。次のようなオリジナルTodos
マップへの変更は、後に一貫性のある滞在を食べた
ui_state = observable.map({
'rf8r4': {visible: true},
'543w4': {visible: false},
'099i0': {visible: true},
'grtg6': {visible: true} // this is the new one
})
私は、autorun
/createTransformer
を試してみましたそれは副作用のように最後に更新されますので、ui_state
をReactコンポーネントに使用することはできません。
は、私はまた、computed
の異なるバージョンを試してみましたが、それは、新しいui_state
たびに作成し、私はcomputed
関数内createTransformer
を使用している場合、私はエラーが出るので...
ありがとう!
だから私が作りますUIStateマップであり、明示的に明示されたものだけが含まれます。私がマップを照会すると、適切なエントリが見つかった場合、適切でない場合は、使用しようとしているUIプロパティのデフォルト値を使用します(例えば、 'visible = true'または' color = 'green '')。しかし、エントリが状態マップ(つまり、 'Todos')から削除され、UIマップにエントリがある場合、UIマップ内のそのエントリは時間の経過とともにメモリを使い果たすことがありますか? – user1657586
@ user1657586それは良い点です。長時間実行しているアプリケーションで、たとえば'Todos'、それは適切でないかもしれません。 – Tholle