ts(2322)类型“内在属性和道具”上不存在属性子级

时间:2020-08-04 17:30:10

标签: reactjs typescript

尝试创建以“日期”为键的多图,然后遍历具有数组作为值的多图时,出现以下错误。

输入'{children:never [];键:字符串;索引:字符串;项目:SomeItem []; }”不能分配给“ IntrinsicAttributes&Props”类型。属性“ children”在“ IntrinsicAttributes&Props”类型上不存在。 ts(2322)

并且不确定如何解决此问题


   const History = () => {
   
  
   const [counter, setCounter] = useState(0);
   type SomeMap = Map<string,  SomeItem[]>;
   let map: SomeMap = new Map();

    //Items is of type SomeItem[]
    Items.foreach((item) =>{
      if(map.has(item.date)){
       (map.get(item.date) ?? []).push(item);
       } 
      else{
       map.set(item.date,[item]);
       }
      });

      return(
        <Accordian>
         { map.foreach((value, index) => {
           setCounter(counter +1 );
           <Task
            key={index}
            Index={counter.toString()}
            Item={value}>
           </Task>
         })}
        </Accordian>
     );
   
    };

    
   
    type Props = {
     index: string;
     Item: SomeItem[];
    };

    const Task = (props:Props) => {

     const index = props.Index;
     const Item = props.SomeItem;

     
     render(/*Some Code*/);
    };


1 个答案:

答案 0 :(得分:6)

Task的类型不是接收children,但是实际上您实际上是在传递换行文本节点作为任务的子节点。

      <Task
        key={index}
        Index={counter.toString()}
        Item={value}>{/* there is a new line text node here */}
      </Task>

您可能希望使JSX标记自封闭以确保其没有子代:

      <Task
        key={index}
        Index={counter.toString()}
        Item={value}
      />

Playground