0
我已經閱讀了其他可用的答案,但無法理解它。我真的不知道在這種情況下在哪裏插入密鑰數組或迭代器中的每個子都應該有一個唯一的「key」屬性。 React JS錯誤
const recursivelyMapChildren = (node, index) => {
return (
node.children.map((child, i) => {
if (child.text) return child.text
const tag = child.tag
return React.createElement(
tag,
{
key: `${tag}-${index}-${i}`,
className: `text-block-${tag}`,
...child.attributes,
},
recursivelyMapChildren(child, index + 1)
)
})
)
}
const STTextBlock = ({ data }) => {
const textTag = data.content[0].tag
return (
<div className="text-block">
{
data.content.map(textBlock =>
React.createElement(
textTag,
{
className: `${textTag}`,
},
recursivelyMapChildren(textBlock)
)
)
}
<style jsx>{styles}</style>
</div>
)
}
任何幫助,將不勝感激!
'data.content'看起來像什麼? –
你爲什麼將'React.createElement'與jsx混合?每當您在循環或地圖調用中創建相同類型的元素時,您必須提供一個密鑰以使它們能夠區分出反應。你不要在你的'STTextBlock'組件的渲染方法中這樣做。 – trixn