2016-11-05 5 views
0

Ich verwende derzeit typisierte React (TSX) und mobx für die Zustandsverwaltung.Kann inject ohne Beobachter nicht verwenden

Ich bin in der Lage, eine Komponente zu bauen, die Beobachter und inject Decorators verwendet. Aber ich bin nicht in der Lage, eine Komponente zu bauen, die inject ohne Beobachter verwendet.

Dieser übergibt den Typoskript Compiler

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> 
    ) 
    })) 

Allerdings versagt diese

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

Mit der folgenden Fehlermeldung

[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>' 

Bitte helfen Sie mir in Kopf und Schwanz dieser Fehlermeldung zu machen . Meine Wette ist, dass die Typings veraltet sind oder so. Andernfalls ist die Verwendung von inject ohne Beobachter tatsächlich eine ungültige Kombination.

+0

Welche '.d.ts' Datei verwendest du für' mobx-react'? Hast du einen Link dafür? –

Antwort

0

Ich denke, dass Ihr Fehler aus dieser kommt: ((props: Props)... , wenn auf diese Weise injizieren mit ich glaube, dass es eine Funktion erwartet, versuchen Sie es verwenden, wie folgt aus:
export const DealershipBreadCrumb = inject('SystemDataStore')((props => {

btw vergessen Sie nicht, wenn Sie das Wenn Sie inject ohne Beobachter verwenden möchten, werden die letzten Werte dieses Speichers injiziert, es ist jedoch keine Änderung der Werte bekannt.

+0

Das ist kein Problem, da ich im Fall dieser Komponente nur in den Laden schreiben werde. – trevorgk

Verwandte Themen