尝试创建以“日期”为键的多图,然后遍历具有数组作为值的多图时,出现以下错误。
输入'{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*/);
};
答案 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}
/>