打字稿错误:类型'{道具:IDrink; }' 不可分配给类型 'IntrinsicAttributes & IDrink'

肖恩·劳顿

我在我的 React Typescript 应用程序中收到此错误。具体来说,尝试将道具传递给子组件时会发生错误。

这是父组件:


const SearchID: FC = (): ReactElement => {
    const { id } = useParams<string>();
    const {
        data: cocktails,
        isLoading,
        error
        } = useGetCocktailByIDQuery(id ? id : "");

    if(isLoading) return <Skeleton variant="text" />
    if(error) return <div>An error has occured.</div>

  return (
    <>
        {cocktails ? <CocktailDetail props={cocktails.drinks[0]} /> : "No data"}
    </>
  );
};

我能够让 console.log(props) 显示在控制台中,但仍然收到 Typescript 错误。子组件:

const CocktailDetail = (props: IDrink) => {
    console.log(props)
  return (
    <h1></h1>
  )
}
博克曼斯
  1. 您没有在CocktailDetail组件中显式指定类型,因此 TypeScript 发现很难知道哪些 props 应该存在和不应该存在。
  2. 你传递道具的方式有点不合常规(不一定是错误的)。

我倾向于做的是这样的:

interface IDrink {
    id: string;
    name: string;
}


interface CocktailDetailProps {
    drink: IDrink;
}

const CocktailDetail: FC<CocktailDetailProps> = ({ drink }) => {
    return (<h1></h1>);
}

然后使用如下:

const SearchID: FC = (): ReactElement => {
    const { id } = useParams<string>();
    const {
        data: cocktails,
        isLoading,
        error
        } = useGetCocktailByIDQuery(id ? id : "");

    if(isLoading) return <Skeleton variant="text" />
    if(error) return <div>An error has occured.</div>

  return (
    <>
        {cocktails ? <CocktailDetail drink={cocktails.drinks[0]} /> : "No data"}
    </>
  );
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

打字稿错误:输入 '{ onClick: () => void; }' 不可分配给类型 'IntrinsicAttributes'

Reactjs 和打字稿错误 TS2322:类型不可分配给类型“IntrinsicAttributes 和 IntrinsicClassAttributes”

类型 string[] 不可分配给类型 'IntrinsicAttributes & string[]'

类型不可分配给类型 'IntrinsicAttributes & { children?: ReactNode; }'。财产

不可分配给IntrinsicAttributes和IntrinsicClassAttributes类型React.js

类型客户端 null 不可分配给 IntrinsicAttributes 和 { Children: ReactNode nextjs

React useState 道具:类型“字符串”不可分配给类型“数字”。TS2322

打字稿错误:类型的“this”上下文......不可分配给方法的“this”类型

角度/打字稿错误:类型 'Observable<unknown>' 不可分配给类型 'Observable<Blogpost>'

打字稿:类型“null”不可分配给类型错误

TS React 数据导入:“TS2322:类型 '{ data: { key1: string; }; }' 不可分配给类型 'IntrinsicAttributes & Props'。”

在反应打字稿中,“字符串”类型不可分配给“从不”类型,“未知”类型不可分配给“从不”类型错误

输入'{孩子:字符串;下载:未定义;}' 不可分配给类型 'IntrinsicAttributes & { 下载页面链接:任何;}'

打字稿:“不可分配给从不类型的参数”错误

打字稿错误:输入'IStory | undefined' 不可分配给类型

打字稿类型 A 不可分配给类型 A(相同类型)

打字稿中的类型问题:类型参数不可分配给类型参数

Angular ' ' 不可分配给类型 'unknown[]'。错误

类型'string'不可分配给类型'“” | “,” | “” | “。”'

类型“{}”不可分配给类型“IProps”

类型“ {}”不可分配给类型“ T”

类型“ void”不可分配给类型“ FormData”

类型 GQLSchema 不可分配给类型 undefined

类型“ Array []”不可分配给类型“ [Array]”

类型“ void”不可分配给类型“ User []”

类型“无效”不可分配给类型“订阅”

类型 AbstractControl 不可分配给类型 FormGroup

类型“ void”不可分配给类型“ ObservableInput <{}>”

类型 '() => Element' 不可分配给类型 'string'