Я преобразовываю реактивный проект из redux в mobx, и у меня возникла следующая проблема: я использовал шаблон «контейнер / презентатор» с redux, что означало использование функции «connect» избыточного типа, например:
export default connect(mapStateToProps, mapDispatchToProps)(Leads);
Проблема в том, что у меня нет эквивалентной функции mobx, поэтому я попытался просто создать экземпляр компонента в контейнере.Что-то вроде:
render() {
return (
<MyComponent
store={mystore}
/>
);
}
К сожалению, это не работает, потому что MyComponent внедрил свойства из реагирующего маршрутизатора, что-то вроде этого:
class MyComponent extends React.Component<ReportProps & RouteComponentProps<ReportProps>> {
constructor(public routeProps: ReportProps & RouteComponentProps<ReportProps>) {
super(routeProps);
}...
Я попытался избавиться от контейнераконцепции, но та же проблема возникает в других местах, потому что я использую декоратор mobx-реагировать @inject.Например, у меня есть такой компонент:
export interface AddressProps {
report: IReportStore;
}
@inject((rootStore: RootStore) => ({
report: rootStore.report
}))
@observer
class Address extends React.Component<AddressProps> {
...
Если я тогда попытаюсь использовать свой компонент где-нибудь, машинопись жалуется, что я не передаю обязательное свойство (отчет, в данном случае), даже еслиМне не нужно, так как я вводю свойства.
Полагаю, мне не хватает чего-то простого, так как это довольно простое использование mobx.А может это просто проблема с машинописью ...?Если да, есть идеи, как это исправить или обойти это?
Заранее спасибо, Джонатан