나는 autorun과 reaction의 설명을 여러 번 읽었지만 하나의 관찰 가능 항목에서 변경 사항을 감지 할 때 어떤 패턴을 사용하는지 그리고 다른 관측 항목을 업데이트하려고하는지는 여전히 내게 명확하지 않습니다.어떤 MobX 패턴을 사용하여 변경 사항을 감지하고 다른 관찰 가능 항목을 변경합니까?
예 I는 어드레스 오브젝트 아래 보여 주었다. 국가가 변경 될 때마다 다른 모든 필드를 재설정하거나 다시 초기화하려고합니다. 이를 수행하는 한 가지 방법은 다른 관찰 가능 항목을 설정하는 Address
클래스 내에 @action setCountry() {...}
클래스를 갖는 것입니다. 그러나 내 UI가 일반적인 기술을 사용하여 저장소 특성을 업데이트하기 때문에 즉, _.set(entity, attr, value)
이라는 사치품이 없습니다. 그래서 autorun
같은 것을 사용하여 변경 사항을 감지하고 나머지 observables를 업데이트하고 싶습니다. 이 작업을 수행하는 올바른 방법은 무엇입니까?
class Address {
@observable name;
@observable line1;
@observable line2;
@observable city;
@observable state;
@observable zip;
@observable country;
...
}
정확히 당신이 다른 관찰 가능한를 업데이 트하려는 방법? 나에게 이것은 [** 계산 **] (https://mobx.js.org/refguide/computed-decorator.html)의 훌륭한 유스 케이스처럼 들리므로 파생 값이 자동으로 업데이트됩니다. – Tholle
음, 다른 값은 파생되지 않으므로이 경우 계산이 적절하지 않습니다. 한 가지 유스 케이스는 다음과 같습니다. 선택한 국가에 따라 다른 관측 대상을 해당 국가의 본사에 기본 설정하려는 경우 - 시간의 90 %가 바람직 할 수 있습니다. 그러나 사용자는 다른 주소로 주소를 자유롭게 변경할 수 있습니다. 이것은 내가 국가에 대한 변화를보고 적절하게 반응하고 싶은 곳입니다. – Naresh