乐优商城自定义树组件无法展开问题
在学习乐优商城的过程中发现了一些问题,花费了不少时间来寻找Bug,在平时忙碌于学业,学习技术的空余时间。写一写这一个让我很有感触的问题。
问题描述
在完成商品分类管理的时候,旁边的自定义树形组件无法展开,我在使用postman测试工具进行测试的时候。pid=0,pid=1,pid=2数据访问均为正常。让我觉得是前端出现了问题,因此十分苦恼。
问题发现
当添加一个节点,在去掉之后,会变成文件夹的形状,恢复正常的状态。大胆的假设是,判断是否父节点的参数出现了问题。
字段的名称命名不规范,is开头在pojo中自动生成set和get方法是将前面的is省去了,导致前端无法接受到正确的参数1,展开失败,判断为叶子节点。
修改之后如下
package com.leyou.item.pojo;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Table(name="tb_category")
public class Category {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
private String name;
private Long parentId;
private Boolean isParent; // 注意isParent生成的getter和setter方法需要手动加上Is
private Integer sort;
public Category() {
}
public Category(Long id, String name, Long parentId, Boolean isParent, Integer sort) {
this.id = id;
this.name = name;
this.parentId = parentId;
this.isParent = isParent;
this.sort = sort;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public Boolean getIsParent() {
return isParent;
}
public void setIsParent(Boolean parent) {
isParent = parent;
}
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
@Override
public String toString() {
return "Category{" +
"id=" + id +
", name='" + name + '\'' +
", parentId=" + parentId +
", isParent=" + isParent +
", sort=" + sort +
'}';
}
}
修改完成之后启动项目进行验证。
提醒:在写代码时需要注意命名的规范。
可以使用注解的形式,在服务网关和方法出加上@CrossOrigin注解即可解决跨域,官方的做法我做的时候比较容易出问题。