【发布时间】:2021-05-03 23:23:54
【问题描述】:
我已经为此苦苦挣扎了几个小时,但没有运气。似乎也找不到任何其他有帮助的 stackoverflow 问题。基本上,我有一个组件需要两个子节点,如下所示:
<SharedTwoColumns
outer={{ className: "mt4 mb4" }}
gap={<div className="h4 w4" />}
>
<div className={isMobile ? "" : "pa3"}>Left Column</div> // first child
<div className={isMobile ? "" : "pa3"}>Right Column</div> // second child
</SharedTwoColumns>
我正在尝试键入“左列”和“右列”子项,以表明它们可能都有道具,但不一定。到目前为止我所拥有的是:
const SharedTwoColumns = ({
outer: { className: ocn, ...outer },
children,
gap: {
props: { className: gcn, ...gapProps }
}
}: {
outer: { [x: string]: unknown; className: string };
children: ReactNode;
gap: { props: { [x: string]: unknown; className: string } };
}) => {
...
const [leftColumn, rightColumn]: ReactNode[] = Children.toArray(children);
const {
props: { className: lcn, children: leftColumnChildren, ...leftColumnProps }
}: ReactNode = leftColumn || {}; // TS error happens here when I hover over 'props'
但是,这给了我打字稿错误:
Property 'props' does not exist on type 'boolean | ReactChild | ReactFragment | ReactPortal | null'.
any
在从leftColumn 解构道具时,是否有人对我如何正确输入此内容有任何想法?
【问题讨论】:
标签: reactjs typescript react-typescript