2017-05-22 9 views
0

がここに私のMobx店ですmobx店舗で観察可能な変数を書き換えることはできません。しかし何らかの理由で私はそれから更新されたステータスを得ることができません。

"fb.profiles.child"より前のプロファイルをコールバックから更新した場合は、それが機能します。

誰もがなぜそれが起こっているのか考えていますか?私は、その、すでに観測者またはそのような何かに取り付けられたかもしれないので、考えて...

答えて

0

オブジェクトが正しく更新され得るために、あなたはprofileを定義するためのobservablehttps://mobx.js.org/refguide/observable.html)とObject.assignを使用する必要があります。

@observable profile = observable({}); 
. 
. 
. 
this.profile = Object.assign({}, this.profile, snapshot.val()); 

Object.assignが更新をトリガしない場合は、あなたがextendObservable()https://mobx.js.org/refguide/extend-observable.html)を使用する必要があります:ここで

は、いくつかの(未テスト)の例です

@observable profile = observable({}); 
. 
. 
. 
extendObservable(profile, snapshot.val()); 

別の方法としては、使用することですより複雑な構造についてはobservable.maphttps://mobx.js.org/refguide/map.html):

@observable profile = observable.map({ profileData: {} }); 
. 
. 
. 
const currentProfile = this.profile.get('profileData'); 
this.profile.set('profileData', Object.assign({}, currentProfile, snapshot.val())); 
+0

まだ運がありません。私がコンポーネントから呼び出す単純な方法でストアからコンソールにプロファイルを印刷すると、プロファイルの日付はコンソールの更新されたデータになりますが、コンポーネントの空のオブジェクトになります。 – wntsmk

+0

これでどこにいらっしゃいましたか? – archae0pteryx

0

それで私の問題を解決することは不可能です。最も重要な部分はありません。

コンポーネントにコンポーネントのウィルマウントがありました。削除した後、それは私の問題を解決しました。