React Redux中的嵌套组件

时间:2017-05-28 09:31:29

标签: reactjs typescript redux react-redux

我有这个组件

type UserInfoProps = UserInfoState.IUserInfoState & typeof UserInfoState.actionCreators

class UserInfo extends React.Component<UserInfoProps, UserInfoState.IUserInfoState>
{
    public componentWillMount()
    {
        this.props.loadUserInfo();
    }

    public render()
    {
        return <div>{this.props.firstname + ' ' + this.props.lastname}</div>
    }
}

export default connect((state: ApplicationState) => state.userInfo, UserInfoState.actionCreators)(UserInfo) as typeof UserInfo;

和第二个组件作为容器

export default class Dashboard extends React.Component<RouteComponentProps<{}>, {}>
{
    public render()
    {
        return <div><UserInfo /></div>;
    }
}

但我收到此错误

  

TS2324 Property&#39; firstname&#39;缺少类型&#39; IntrinsicAttributes&amp; IntrinsicClassAttributes&amp; Readonly&lt; {children?:ReactNode; }&GT; &安培; ...&#39;

我在这里做错了什么,我该怎么办?

1 个答案:

答案 0 :(得分:1)

听起来<UserInfo />组件需要firstname发送给它。你要留下第一个名字..

UserInfoProps将定义组件发送给它的内容。

尝试添加名字。

<UserInfo firstname="somebody" />

从评论看来,您似乎不想立即要求道具......要做到这一点,您可以使用?来告诉打字稿是可选的。

UserInfoProps  = {
    firstname?: string;
    lastname?: string;
}