我正在使用带有 react 和 typescript 的 mobx-state-tree 库。
商店.ts:
import { types } from 'mobx-state-tree'
export const UserModel = types
.model('UserModel', {
name: types.maybe(types.string)
});
const RootStore = types
.model('RootStore', {
user: types.optional(types.maybe(UserModel), null)
});
export default RootStore
App.jsx 无状态组件:
const App = ({ rootStore }: {rootStore: typeof RootStore.Type}) =>
<Wrapper>
Content
</Wrapper>;
export default inject('rootStore')(observer(App))
当我尝试将 App 组件添加到根组件中时,出现打字稿编译器错误
类型“{}”不可分配给类型“IntrinsicAttributes & { rootStore: { user: { name: any; } & IStateTreeNode; } & IStateTreeNode; }'。
const rootStore = RootStore.create();
render(
<AppContainer>
<Provider rootStore={rootStore}>
<App/> // <- the error was thrown out here
</Provider>
</AppContainer>,
document.getElementById('root')
);
由 Provider mobx 组件注入的 RootStore,该组件使用 React 上下文机制将 rootStore 注入到子组件中。但看起来打字稿编译器不知道这种机制并抛出错误,因为 rootStore 必须由根组件显式提供。
我应该添加什么来显示 rootStore 将由 mobx 提供者提供的打字稿?