在IntrinsicAttributes&类型中,React-Redux连接缺失。 IntrinsicClassAttributes

时间:2018-01-27 09:00:54

标签: c# react-redux asp.net-core-2.0

有一个非常相似的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'; }”。

我错过了什么?请帮忙。

1 个答案:

答案 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);

我仍然没有弄清楚为什么这个解决方案有效,但它确实解决了我的问题。