这是我在映射状态下获得的最终结果,我想在节点状态内映射文本数组,请忽略节点const,这是我在console.log(this.state.nodes)中得到的输出; < / p>
`const nodes = [{
id: 1,
style: 'dummy data',
className: 'dummy data',
text: [
{ id: 1, text: 'text 1'},
{ id: 2, text: 'text 2'}
]
}]`
在这里我映射节点状态,在节点状态中有文本数组,我想访问文本中的文本1,如何通过映射来实现这一点
`{this.state.nodes.map((node, index) => {
const showbutton = node.className === 'square';
const decisionbutton = node.className === 'diamond';
return(
<div
key={index}
className={'node ' + node.className}
id={node.id}
ref={nodes => this.refs.nodes[index] = nodes}
style={node.style}
onClick={this.activeElem}
>
{(node.text|| []).map((child,key)=>{
return (
<div key={key}>
{child.text}
</div>
);
})}`
答案 0 :(得分:0)
rxjs html中的map
也有同样的问题
这是我的工作...
return(
<div
key={index}
className={'node ' + node.className}
id={node.id}
ref={nodes => this.refs.nodes[index] = nodes}
style={node.style}
onClick={this.activeElem}
>
{Array.from(Array(node.text.length), (e, i) => {
return (
<div key={key}>
{node.text[i].text}
</div>
)
}
</div>
)
查看是否有帮助。
我只是在创建一个临时空数组,并使用它的索引遍历node.text
数组
答案 1 :(得分:0)
问题在于条件(node.text || [])
中的第一个变量实际上不是Array
。
当您尝试进行管理时,它显示了[object][object]
。
这是JS Object
数据类型-map()
是Array.prototype
中存在的函数。
当您完成console.log(JSON.stringify(node.text))
时,确实向您显示了文本。
.map()
也将不适用于undefined
。
这就是失败的原因。 node.text
不是数组。
如果您返回一个对象,请考虑使用Object.keys
(info)循环访问该对象,或者使用for...of
循环,
或者只是将node.text
重新格式化为数组类型。
答案 2 :(得分:0)
const nodes = [{
id: 1,
style: 'dummy data',
className: 'dummy data',
text: [
{ id: 1, text: 'text 1'},
{ id: 2, text: 'text 2'}
]
}]
node.map((node) => { return node.text.map((value) => (value.id)); })
运行此命令,它将返回有效值...只需确保node.text将对象作为值而不是screenshot
中所示的字符串