const RenderItem = (item) => { const { children } = item; const [showChild, setShowChild] = useState(false); return ( <> <div>Item!!!</div> {showChild && children.length > 0 && ( <> // 应用一般函数会报错 {children.map((ele) => ( <>{RenderItem(ele)}</> ))} </> )} </> );};
下面的代码会报错:Rendered more hooks than during the previous render.
将调用本身那行改成这种就好了:
{children.map(ele => <RenderItem item={ele} />}
依照标准,RenderItem,R要大写