Como instanciar o componente de reação com propriedades injetadas
Estou convertendo um projeto de reação do redux para o mobx e estou tendo o seguinte problema: Eu estava usando o padrão container / apresentador com o redux, o que significava usar a função "connect" do redux, assim:
export default connect(mapStateToProps, mapDispatchToProps)(Leads);
O problema que estou tendo é que não há função mobx equivalente; então, tentei simplesmente criar uma instância do componente no contêiner. Algo como:
render() {
return (
<MyComponent
store={mystore}
/>
);
}
Infelizmente, isso não funciona, porque o MyComponent injetou propriedades do react-router, algo como isto:
class MyComponent extends React.Component<ReportProps & RouteComponentProps<ReportProps>> {
constructor(public routeProps: ReportProps & RouteComponentProps<ReportProps>) {
super(routeProps);
}...
Tentei me livrar do conceito de contêiner, mas o mesmo problema ocorre em outros lugares porque estou usando o decorador mobx-react @inject. Por exemplo, eu tenho um componente como este:
export interface AddressProps {
report: IReportStore;
}
@inject((rootStore: RootStore) => ({
report: rootStore.report
}))
@observer
class Address extends React.Component<AddressProps> {
...
Se eu tentar usar meu componente em algum lugar, o texto datilografado reclama que eu não estou passando a propriedade necessária (relatório, neste caso), mesmo que eu não precise, pois estou injetando as propriedades.
Acho que devo estar perdendo algo básico, pois esse é um uso bastante simples do mobx. Ou talvez seja apenas um problema de digitação ...? Em caso afirmativo, alguma idéia de como consertar ou contornar isso?
Agradecemos antecipadamente, Jonathan