Спасибо за ответ! Я решил свою проблему, используя одно из многих решений, предложенных на странице проблемы github, на которую вы ссылались: теперь у меня есть служебная функция typedInject, которую я оборачиваю вокруг своего компонента перед его экспортом, и она отлично работает. Просто сделать дополнительные свойства необязательными, потому что вам нужно проверять, определены ли они каждый раз, когда вы пытаетесь их использовать ...

образовываю реактивный проект из redux в mobx, и у меня возникла следующая проблема: я использовал шаблон «контейнер / презентатор» с redux, что означало использование функции «connect» избыточного типа, например:

 export default connect(mapStateToProps, mapDispatchToProps)(Leads);

У меня проблема в том, что нет эквивалентной функции mobx, поэтому вместо этого я попытался просто создать экземпляр компонента в контейнере. Что-то вроде:

render() {
  return (
    <MyComponent
      store={mystore}
    />
  );
}

К сожалению, это не работает, потому что MyComponent имеет внедренные свойства от activ-router, что-то вроде этого:

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. А может это просто проблема с машинописью ...? Если это так, есть идеи, как это исправить или обойти это?

Заранее спасибо Джонатан

Ответы на вопрос(1)

Ваш ответ на вопрос