【发布时间】:2017-12-30 11:56:38
【问题描述】:
当我将道具传递给子元素时,我收到以下错误:
TS2322:类型“{}”不可分配给类型“IntrinsicAttributes & FooterRightSideProps & { children?: ReactNode; }'。
类型“{}”不可分配给类型“FooterRightSideProps”。
类型“{}”中缺少属性“onClickCreate”。
我的代码如下:
import React from "react";
import CSSModules from "react-css-modules";
import styles from "./Footer.module.sass";
import { Icon } from "@components/icon/Icon";
import { Link } from "@components/typography/link";
import { Button } from "@components/button/Button";
export interface FooterProps {
}
export const Footer: React.SFC<FooterProps> =
CSSModules(styles)
(
(props: FooterProps) =>
<div styleName="footer">
<FooterLeftSide />
<FooterRightSide { ...props } /> //an error occurs here
</div>
);
export const FooterLeftSide: React.SFC =
CSSModules(styles)(
() =>
<div styleName="footer-left-side"></div>
);
export interface FooterRightSideProps {
onClickAbandon?: () => void;
onClickCreate: () => void;
}
export const FooterRightSide: React.SFC<FooterRightSideProps> =
CSSModules(styles)
(
(props: FooterRightSideProps) =>
<div styleName="footer-right-side">
<Link
className="option-back"
styleName="header-option"
onClick={props.onClickAbandon}
>
<div styleName="icon-with-label">
<Icon name="left" />
</div>
Abandon
</Link>
<Button
onClick={props.onClickCreate}
theme="primary-white"
>
Create Profile
</Button>
</div>
);
你们有什么想法吗,如何将这个 onClickCreate 属性传递给嵌套在父元素中的子元素?
【问题讨论】:
-
onClickCreate定义在哪里?
标签: javascript reactjs typescript