有一个非常相似的question,但解决方案并不能解决我的问题。
我使用“React& Redux”模板创建了一个Asp.net核心项目。并创建了如下的反应组件:
system.time
sessionStore.actionCreators 如下所示:
export interface SessionProp {
user?: string
}
type SessionContainerProp =
SessionProp &
typeof SessionStore.actionCreators;
export class SessionContainer extends React.Component<SessionContainerProp, {}> {
constructor(props: SessionContainerProp) {
super(props)
}
componentDidMount() {
//check if user loged in
this.props.reqestCurrentUser()
}
public render() {
if (this.props.user != null) {
return <Layout />;
}
else {
return <Login />;
}
}
}
export default connect(
(state: ApplicationState) => state.session,
SessionStore.actionCreators
)(SessionContainer) as typeof SessionContainer;
IMO,如果我在没有export const actionCreators = {
reqestCurrentUser: () => {
return <CheckUserLoginAction>{ type: Actions.CheckUserLogin, user: 'a' };
}
};
之类的道具的情况下渲染组件,应该没有问题。但是,VS代码引发错误如下:
输入'{children:Element []; ''不能赋值给'IntrinsicAttributes&amp; IntrinsicClassAttributes&amp; Readonly&lt; {children?:ReactNod ......'。 输入'{children:Element []; ''不能赋值为'Readonly'。 类型'{children:Element [];中缺少属性'reqestCurrentUser'; }”。
我错过了什么?请帮忙。
答案 0 :(得分:0)
最后,我通过替换
解决了这个问题export default connect(
(state: ApplicationState) => state.session,
SessionStore.actionCreators
)(SessionContainer) as typeof SessionContainer;
带
export const SessionWrapContainer = connect(
(state: ApplicationState) => state.session,
SessionStore.actionCreators
)(SessionContainer);
我仍然没有弄清楚为什么这个解决方案有效,但它确实解决了我的问题。