You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JSX中使用追加(+=)运算符?

解决JSX元素拼接显示[object Object]的问题

你遇到的问题核心是:JSX标签本质是JavaScript对象,不是字符串。

你写的<span>{i}</span>,实际是React.createElement('span', null, i)的语法糖,返回的是一个描述DOM结构的对象。当你用+=把它和空字符串j拼接时,JavaScript会自动调用对象的toString()方法,把它转成[object Object],所以最后得到的就是三个这个字符串连起来的结果。

正确的写法

方法一:用数组存储JSX元素

把空字符串改成数组,用push添加JSX元素:

let j = [];
// 注意用for...of遍历数组值,for...in遍历的是索引
for (let i of [1,2,3]) {
  j.push(<span key={i}>{i}</span>);
}

渲染时直接写{j},React会自动遍历数组并渲染每个元素。

方法二:用数组map方法(更符合React风格)

直接用数组的map方法生成JSX元素数组:

const elements = [1,2,3].map(i => <span key={i}>{i}</span>);

渲染时写{elements}即可。

注意点

渲染数组形式的JSX元素时,每个元素必须添加唯一的key属性,这是React要求的,用来提升渲染性能并避免警告。

内容的提问来源于stack exchange,提问作者emallove

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 05:25:40