元素“not__uploaded”呈现为[object Object]。我对React很新,我似乎无法弄清楚这里有什么问题。
'responseRecieved'是一个布尔值,用于跟踪是否进行了api调用。
ce('div', {
className: 'response__done'
},
ce('p', {
className: ''
}, 'Upload results: '),
`${responseRecieved ?
response.not_uploaded.map(({ msg, post_category }) =>
ce('div', {className: 'not__uploaded clearfix'},
ce('p', {className: ''},
msg,
' for post with',
post_category[0],
),
))
: ''}`
)
答案 0 :(得分:1)
`${responseRecieved ?
response.not_uploaded.map(({ msg, post_category }) =>
ce('div', {className: 'not__uploaded clearfix'},
ce('p', {className: ''},
msg,
' for post with',
post_category[0],
),
))
: ''}`

这整段代码都包含在模板字符串``中,因此最终结果将是一个字符串。
response.not_uploaded.map
必然会返回一个数组。根据问题的当前输出判断,它返回一个包含2个insdie对象的数组。这个带有2个对象的数组依次在字符串模板中呈现,这基本上是将数组强制转换为字符串。被强制转换为字符串的数组的默认行为是在该数组上调用toString()
。数组的默认toString()
实现正在调用Array.join(',')
。这就是为什么你的对象以逗号字符分隔的字符串形式出现的原因。
最后,数组中的两个对象也被强制转换为字符串值(在每个对象上调用toString()
)。显然,您的任何对象都没有toString()
实现,因此javascript只是默认为"object Object"