2016-11-05 5 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>' 

Пожалуйста, помогите мне в создании головы и хвосты этого сообщения об ошибке , Моя ставка заключается в том, что типичные данные устарели или что-то в этом роде. Или иначе использование инъекции без наблюдателя на самом деле является недопустимой комбинацией.

+0

Какой файл '.d.ts' вы используете для' mobx-react'? У вас есть ссылка на него? –

ответ

0

Я думаю, что ваша ошибка исходит от этого: ((props: Props)... при использовании впрыскивать таким образом, я считаю, что это ожидает функции, попробуйте использовать его как это:
export const DealershipBreadCrumb = inject('SystemDataStore')((props => {

кстати не забывайте, что если вы хотите использовать инъекцию без наблюдателя, он будет вводить последние значения этого хранилища, но он не будет знать об изменении значений.

+0

Это не проблема, поскольку я буду писать в магазин только в случае этого компонента. – trevorgk