当我尝试在Reactjs
代码中打印道具的值时,我得到以下内容:
console.log(this.props.rec.get('data'));
Map
__altered: false
__hash: undefined
__ownerID: undefined
_root: ArrayMapNode
entries: Array[8]
0: Array[2]
1: Array[2]
2: Array[2]
3: Array[2]
0: "language"
1: "ena"
4: Array[2]
5: Array[2]
0: "owners"
1: List
length: 2
__proto__: Array[0]
6: Array[2]
7: Array[2]
length: 8
__proto__: Array[0]
ownerID: OwnerID
__proto__: Object
size: 8
__proto__: KeyedIterable
entries
是一个功能。如何从此数据中获取“语言”和“所有者”的值?
我真的不明白这个结构,有人可以向我解释一下吗?
答案 0 :(得分:1)
你知道你似乎在使用immutable.js吗?检查其文档https://facebook.github.io/immutable-js/docs/#/Map
尝试:
console.log(this.props.rec.get('data').get('language'))
console.log(this.props.rec.get('data').get('owners').get(0))
答案 1 :(得分:1)
您可以使用.toJS()
来获取更易读的数据版本。例如this.props.rec.get('data').toJS()
然后,您可以this.props.rec.get('data').toJS().owners
获取owners
,或者使用.getIn()
this.props.rec.getIn('data', 'owners')
语法来检索您需要的信息,例如type
woocommerce_default_address_fields
答案 2 :(得分:0)
这似乎是ES2015 Map问题,与React无关。
我相信条目具有Map的所有键值对。
答案 3 :(得分:0)
我们不会直接以地图格式获取,因此我们需要像下面这样转换和获取数据:
let postData: any = Map(this.props.data).toJS()
Object.keys(postData).map((key) => {
console.log(postData[key]['attribute'])
})