0
私はこの他の回答で読んだことがありますが、それを理解できません。私は実際に任意のヘルプをいただければ幸いです配列またはイテレータ内の各子には、一意の「キー」小文字が必要です。 React JS Error
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'コンポーネントのrenderメソッドでこれをしません。 – trixn