Uncaught TypeError: Cannot create property ‘LAY_TABLE_INDEX‘ on number ‘2

在使用layui框架的table组件时,若后台仅返回单个User对象,会导致前端报错。本文介绍如何通过将单个User对象封装到List中解决此问题,确保数据正确加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 问题背景

后台:SSM框架
前端:layui框架

描述:一个商城,登录普通用户,进入后台管理,查看当前用户的一些信息和操作。(因为当前登录的是普通用户,所以只能看到自己的信息,不能看到别人的信息)

二. 报错原因

layui的table组件接收的数据格式如下:

data:[{},{},....]

它是一个数组,每一个元素都是User类型的对象。所以如果后台的controller方法只返回一个user对象作为data,是会报错table.js?v=1585550979763:2 Uncaught TypeError: Cannot create property 'LAY_TABLE_INDEX' on number '2

三. 解决方案

最最最最关键的就是把user实例对象放进一个List里面,再赋给data作为返回数据的接口,如下:

@ResponseBody
	@RequestMapping(value="/getPage2",method=RequestMethod.GET)
	public Map<String, Object> getPage2(HttpServletRequest request){
		Map<String, Object> map = new HashMap<String, Object>();
		HttpSession session = request.getSession();
		User user = (User) session.getAttribute("user");
		List<User> list = new ArrayList<User>();
		list.add(user);//关键
		map.put("code", 0);
		map.put("msg", "操作成功");
		map.put("count", list.size());
		map.put("data", list);
		return map;
	}

解释: List<User> list = new ArrayList<User>(); list.add(user);//关键这里很关键

这个错误是因为你在一个数字上尝试创建一个属性,而数字是不可编辑的。根据你提供的引用,这个错误可能是由于你在使用element plus中的upload上传组件时,file-list属性的类型不正确导致的。官方文档要求file-list属性是一个包含对象的数组,而你之前使用的是一个逗号分隔的字符串。当需求更改后,你可能没有注意到这一部分,导致出现了这个错误。解决方法是将file-list属性的值更改为一个包含对象的数组。这样就可以解决TypeError: Cannot create property 'type' on number '20001'的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ASP.NET MVC运行出现Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解决方法](https://download.csdn.net/download/weixin_38731761/13069683)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [: Error in callback for watcher “fileList“:TypeError: Cannot create property ‘uid‘ on](https://blog.csdn.net/SqlloveSyn/article/details/131991044)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Uncaught TypeError: Cannot create propertyLAY_TABLE_INDEXon number ‘3](https://blog.csdn.net/qq_45251343/article/details/118715120)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值