2017-05-22 9 views
0

가 여기 내 Mobx 저장소입니다 mobx 가게에서 관찰 변수를 다시 작성할 수 없습니다. 하지만 어떤 이유로 업데이트 된 상태를 얻을 수 없습니다.

"fb.profiles.child"전에 프로필을 콜백이 아닌 업데이트하면 제대로 작동합니다.

누구나 그 이유는 무엇입니까? 그 이미 그런 관찰자 또는 무언가에 장착하기 때문에 나는 어쩌면 생각 ...

답변

0

위해서는 제대로 업데이트 객체 얻으려면, 당신은 observable (https://mobx.js.org/refguide/observable.html)와 Object.assignprofile을 정의하기 위해 사용한다. 다음 extendObservable() (https://mobx.js.org/refguide/extend-observable.html)를 사용할 필요가 업데이트를 트리거하지 않습니다 Object.assign 만약

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

: 여기

는 몇 가지 (검증되지 않은) 예

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

또 다른 대안은 사용하는 것입니다 보다 복잡한 구조의 경우 observable.map (https://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

그래서 내 문제를 해결하는 것이 불가능합니다. 가장 중요한 부분이 없습니다.

구성 요소에 componentWillMount가 있습니다. 삭제 한 후 내 문제가 해결되었습니다.