Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React-Redux中的嵌套组件_Reactjs_Typescript_Redux_React Redux - Fatal编程技术网

Reactjs React-Redux中的嵌套组件

Reactjs React-Redux中的嵌套组件,reactjs,typescript,redux,react-redux,Reactjs,Typescript,Redux,React Redux,我有这个组件 type UserInfoProps = UserInfoState.IUserInfoState & typeof UserInfoState.actionCreators class UserInfo extends React.Component<UserInfoProps, UserInfoState.IUserInfoState> { public componentWillMount() { this.props.l

我有这个组件

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;
type UserInfoProps=UserInfoState.IUserInfoState&typeof UserInfoState.actionCreators
类UserInfo扩展了React.Component
{
公共组件willmount()
{
this.props.loadUserInfo();
}
公共渲染()
{
返回{this.props.firstname+''+this.props.lastname}
}
}
将默认连接((状态:ApplicationState)=>state.userInfo,UserInfoState.actionCreators)(userInfo)导出为userInfo的类型;
第二个组件作为容器

export default class Dashboard extends React.Component<RouteComponentProps<{}>, {}>
{
    public render()
    {
        return <div><UserInfo /></div>;
    }
}
导出默认类Dashboard扩展React.Component
{
公共渲染()
{
返回;
}
}
但是我得到了这个错误

TS2324属性“firstname”在类型“IntrinsicatAttributes&IntrinsicClassAttributes&Readonly&…”中丢失

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

听起来
组件需要一个
名字才能发送给它。你把名字漏掉了

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

尝试添加一个名字

从评论来看,你似乎不想马上就需要道具。。。为此,您需要包含一个
,告诉typescript它是可选的

UserInfoProps  = {
    firstname?: string;
    lastname?: string;
}
听起来好像
组件需要向其发送
名字。你把名字漏掉了

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

尝试添加一个名字

从评论来看,你似乎不想马上就需要道具。。。为此,您需要包含一个
,告诉typescript它是可选的

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

但是我创建了
UserInfo
组件来执行其逻辑,而不受容器外部的干扰。这样,我必须传递容器中的所有内容,比如
loadUserInfo
函数。我做错了什么?我说的是打字。。您可以定义组件应该获得的道具。。如果您没有通过这些道具,那么编译器将失败并向您发送错误消息。您需要将属性传递给组件。。或者您需要将这些属性设置为可选(使用
)我知道您的意思。但是
loadUserInfo
actionCreators
,不能通过optionnal进行操作。因此请更改所需的属性。您的意思是,当呈现
UserInfo
时,需要
firstname
。。如果该组件正在加载信息。。然后不要让那个属性成为必需的我知道,但是我有一个操作名
loadUserInfo
,需要调用它并分派加载的数据,它不能操作。无论如何,感谢您的帮助,但是我创建了
UserInfo
组件来执行其逻辑,而不受容器外部的干扰。这样,我必须传递容器中的所有内容,比如
loadUserInfo
函数。我做错了什么?我说的是打字。。您可以定义组件应该获得的道具。。如果您没有通过这些道具,那么编译器将失败并向您发送错误消息。您需要将属性传递给组件。。或者您需要将这些属性设置为可选(使用
)我知道您的意思。但是
loadUserInfo
actionCreators
,不能通过optionnal进行操作。因此请更改所需的属性。您的意思是,当呈现
UserInfo
时,需要
firstname
。。如果该组件正在加载信息。。然后不要让那个属性成为必需的我知道,但是我有一个操作名
loadUserInfo
,需要调用它并分派加载的数据,它不能操作。不管怎样,谢谢你的帮助