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

时间:2020-03-01 20:04:55

标签: reactjs typescript

这是我要导入的数据文件。它位于/src文件夹中:

export default {
  key1 : 'val1'
}

在顶级组件App.tsx中,我有:

import portFolioData from "../data/portFolio";

type Props = {
  portfolioData : { key1 : string }
}

export default (props: Props) => {

  return (
    <div className="App" id="appContainer">

//TS2322: Type '{ portFolioData: { key1: string; }; }' is not assignable 
//to type 'IntrinsicAttributes & Props'.   Property 'portFolioData' does 
//not exist on type 'IntrinsicAttributes & Props'.
      <Portfolio portFolioData={portFolioData} />
      // continues...

Portfolio.tsx组件

type Props = {
  portfolioData : { key1 : string }
}

export default (props: Props) => {

  return (
    <div>

    </div>
  )
}

我认为这是类型错误; Props对象未正确定义或传递数据文件。正确的语法是什么?我也愿意切换到.json数据文件,如果这样做会有所帮助。

1 个答案:

答案 0 :(得分:4)

我认为您应该在Portfolio.tsx中使用的是:

interface Props  {
  portFolioData : { key1 : string }
}

(F应该是大写),只需查看App.tsx中道具的声明即可。

您在App.tsx上不需要此部分:

type Props = {
  portfolioData : { key1 : string }
}

(您不需要它是因为您正在导入它,并且它不会作为道具传递。