App.tsx的一些代码:
interface AppProps{
history: any
}
export default class App extends React.Component<AppProps,...> {
public state = {
target: this.props.history.push('/')
};
private route() {
if (!session.isLogin) {
this.setState({ target: this.props.history.push('/') });
return
} else {
this.setState({ target: this.props.history.push('/root') })
}
}
...
public render() {
return this.state.target
}
}
index.tsx的一些代码
ReactDOM.render(
<MemoryRouter>
<LocaleProvider locale={zhCn}>
<App history={ ???? }/>
</LocaleProvider>
</MemoryRouter>,
document.getElementById('root') as HTMLElement
);
registerServiceWorker();
为什么“历史”类型错误?提示:“ {}”类型中缺少属性“历史记录”。我应该在index.tsx中传递什么参数?
谢谢!
答案 0 :(得分:0)
如果您希望App
从RouteComponentProps
接收所有MemoryRouter
(包括历史对象),那么您需要通过一条路线呼叫App
像这样:
ReactDOM.render(
<MemoryRouter>
<LocaleProvider locale={zhCn}>
<Route component={App}/>
</LocaleProvider>
</MemoryRouter>,
document.getElementById('root') as HTMLElement
);
然后,您可以在AppProps
的声明中将RouteComponentProps<{}>
替换为App
。