React - TypeScript 的 props 解构

Alb*_*sky 7 destructuring typescript reactjs

我有一个功能:

 export function getSubjectsForStudent(data: any) : any[]
Run Code Online (Sandbox Code Playgroud)

我从外部源收到“数据参数”,定义强类型是不可行的。“return”源自“data”,因此它也是any类型。

“主”组件将“返回”传递给“子”组件,如下所示:

<MainCategories subjects={getSubjectsForStudent(data)} />
Run Code Online (Sandbox Code Playgroud)

在主要类别中

export default function MainCategories(props: any) {
    const tmp = props.subjects;
    ...
Run Code Online (Sandbox Code Playgroud)

它有效并且没问题。

但我想
导出默认函数 MainCategories( {subjects} ) {

有人可以帮忙吗?

Den*_*soi 11

您需要添加 Props 的类型/接口 - 然后您将能够通过解构获得主题。

interface Props {
  subjects: any
}

export default function MainCategories({ subjects }: Props) {
    const tmp = props.subjects;
    ...
Run Code Online (Sandbox Code Playgroud)


小智 11

我经常使用这种模式来做到这一点,但要点是定义道具。

import { FunctionComponent } from 'react';

interface Props {
  // In your case
  subjects: any
}

const MainCategories: FunctionComponent<Props> = ({subjects}) => (
  ...
);

export default MainCategories;
Run Code Online (Sandbox Code Playgroud)