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

React中从数组绑定数据到Checkbox Tree节点仅显示最后一条的问题

问题解决建议

你的问题出在循环中每次都重新赋值persons数组,而非向数组中添加元素:

const persons = []; 
for (let i = 0; i < data.length; i++) {
  // 每次循环都把persons替换成仅包含当前元素的新数组,最终只保留最后一条
  persons = [{ value: data[i].id, label: data[i].name }]; 
}  
this.setState({ persons });

修复方案一:使用push添加元素

修改循环逻辑,用push将每个元素追加到数组中:

const persons = []; 
for (let i = 0; i < data.length; i++) {
  persons.push({ value: data[i].id, label: data[i].name }); 
}  
this.setState({ persons });

修复方案二:使用Array.map(更简洁推荐)

直接用map方法将接口返回的data数组转换为树组件需要的格式,代码更简洁且可读性更高:

const persons = data.map(item => ({
  value: item.id,
  label: item.name
}));
this.setState({ persons });

修改后,this.state.persons会包含所有转换后的节点数据,树视图就能正常显示全部记录了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:11:02