我有这个组件
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;
我在这里做错了什么,我该怎么办?
答案 0 :(得分:1)
听起来<UserInfo />
组件需要firstname
发送给它。你要留下第一个名字..
UserInfoProps将定义组件发送给它的内容。
尝试添加名字。
<UserInfo firstname="somebody" />
从评论看来,您似乎不想立即要求道具......要做到这一点,您可以使用?
来告诉打字稿是可选的。
UserInfoProps = {
firstname?: string;
lastname?: string;
}