現在、状態管理に typed React (TSX) と mobx を使用しています。
オブザーバーと注入デコレーターの両方を使用するコンポーネントを構築できます。しかし、オブザーバーなしで注入を使用するコンポーネントを構築することはできません。
これは typescript コンパイラを渡します
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>'
このエラーメッセージの頭と尾を作るのを手伝ってください。私の賭けは、タイピングが時代遅れか何かであるということです。または、オブザーバーなしでの注入の使用は、実際には無効な組み合わせです。