나는 mobx를 많이 사용하고있는 것처럼 느껴진다. 그러나 나는 무엇인가를 명확히하고 싶다. 나는 몇 가지 관찰 가능한과 상점이있어, 핵심이있는 객체의 배열 (타이프) 인 :mobx에서 계산/관찰 가능 항목을 사용하는 경우
class ClientStore {
constructor() {
this.loadClients();
}
@observable private _clients: IClient[] = [];
@computed get clients() {
return this._clients;
}
@observable isFetching: boolean = false;
@observable sortField: 'title' | 'modified' = 'modified';
@observable sortDescending: boolean = true;
getClientByUrlName(urlName: string): IClient {
return this._clients.find(c => c.urlName === urlName);
}
etc...
내 질문은 마지막 함수가 - getClientByUrlName. 그것이 관찰 가능한 것으로부터 발견 되었기 때문에, 그 함수를 사용하고있는 @ observer 반응 컴포넌트는 올바르게 다시 렌더링됩니다. 이게 관용적 인 마피아 같습니까? 그것은 계산 된 값이어야한다고 생각합니다. 내가 사용해야 할 구성 요소에서 계산 된 값을 사용해야합니까?
//import singletone ClientStore
class ClientDetailsView extends React.Component<{params:{urlName:string}}, void> {
@computed get client() {
return ClientSotre.clients.find(c => c.urlName === this.props.params.urlName);
}
...rest of react component
여기 모범 사례와 문제를 찾고 있습니다. 어떤 도움을 주셔서 감사합니다.
* 편집 고정 코드 샘플 오류 원칙적으로
아 하! 그건 내가 놓친 조각처럼 보였다. 문서를 볼 때마다 새로운 부분 인 것처럼 보입니다. 재미있는 것은 컴포넌트 자체에 계산 된 프로퍼티를 붙이는 것이 내가이 질문을 쓰는 동안 나에게 다가 왔다는 것이다. [끄기 주제] 나는 MobX와 같은 방식으로 (나는 redux에서 전환 중입니다). 더 많이 배우면할수록 더 좋아집니다. 모든 노력에 감사드립니다! – Jakke
실제로 마지막 날에 조금씩 문서를 재구성 했으므로 그 느낌은 맞습니다. – mweststrate
왜 저장소에있는 대신 ClientDetailsView에'@ computed'를 넣는 것이 좋을지 혼란 스럽습니다. 가게에 두는 것과 같은 효과가 있습니까? – Jeff