2016-11-05 16 views
0

현재 상태 관리를 위해 입력 된 React (TSX) 및 mobx를 사용하고 있습니다.관찰자없이 주사를 사용할 수 없습니다.

저는 관찰자와 삽입 데코레이터를 모두 사용하는 구성 요소를 만들 수 있습니다. 하지만 관찰자없이 주사를 사용하는 구성 요소를 만들 수는 없습니다. 이것은 타이프 스크립트 컴파일러를 통과

export const DealershipBreadCrumb = inject("appStore")(observer((props: Props) => { 
    const {appStore} = props; 
    const dealership = appStore.getSelectedDealership(); 
    return (
      <div className="filter__container filter__group"> 
      <a className="filter__link" href={`cars?q=${appStore.searchResults.searchQuery}`}> 
       <span className="filter__text">{dealership.name}</span> 
      </a> 
      </div> 
    ) 
    })) 

그러나 이것은 다음과 같은 오류 메시지와 함께

export const DealershipBreadCrumb = inject("appStore")((props: Props) => { 

실패

[ts] Argument of type '(props: Props) => Element' is not assignable to parameter of type 'ComponentClass<{}>'. 
    Type '(props: Props) => Element' provides no match for the signature 'new (props?: {}, context?: any): Component<{}, ComponentState>' 

이 오류 메시지의 머리와 꼬리를 만드는 저를 도와주십시오 . 내 말은 입력 내용이 오래되었거나 뭔가있는 것입니다. 또는 관찰자없이 injection을 사용하면 실제로 잘못된 조합입니다.

+0

'mobx-react'에 어떤'.d.ts' 파일을 사용하고 있습니까? 그것을위한 링크가 있습니까? –

답변

0

나는 당신의 오류가이에서오고 있다고 생각 : 나는 기능을 기대하고 믿는 길을 주입 사용할 때 ((props: Props)... 는, 다음과 같이 사용하십시오 :
export const DealershipBreadCrumb = inject('SystemDataStore')((props => {

이 BTW 것을 잊지 마십시오 경우 관찰자없이 주사를 사용하고 싶다면 저장소의 마지막 값을 주사하지만 값의 변화는 알지 못합니다.

+0

이 구성 요소의 경우에만 상점에 편지를 보낼 예정이므로 문제가되지 않습니다. – trevorgk