기술나눔

Guli Mall P85에 제품 출시 시 사양이 표시되지 않습니다.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

P85는 제품을 공개하고 다음을 클릭한 후 사양이 표시되지 않는 것을 발견했다고 말했습니다.

콘솔을 열고 각... 오류에 대한 오류를 찾으세요.

문제의 원인을 확인한 결과, 반환된 그룹에서 개별 그룹의 관련 속성(속성)은 null일 수 있습니다.

따라서 이때 백엔드에서 반환된 속성이 null이 될 수 없는지 확인해야 합니다.

방법 1: 백엔드 필터링: 백엔드 구현 클래스를 사용하여 속성이 null인 그룹을 판단하고 제거합니다.

  1. **
  2. * 根据分类id查出所有分组和分组属性
  3. * @param catelogId
  4. * @return
  5. */
  6. @Override
  7. public List<AttrGroupWithAttrsVo> getAttrGroupWithAttrsByCatelogId(Long catelogId) {
  8. //获得在属性分组表中的所有属于当前分类的实体
  9. List<AttrGroupEntity> attrGroupEntities = this.list(new QueryWrapper<AttrGroupEntity>().eq("catelog_id", catelogId));
  10. List<AttrGroupWithAttrsVo> collect = attrGroupEntities.stream().map((group) -> {
  11. AttrGroupWithAttrsVo attrsVo = new AttrGroupWithAttrsVo();
  12. BeanUtils.copyProperties(group,attrsVo);
  13. //当前分组下的所有属性(没有"valueType": 0,)
  14. List<AttrEntity> attr = attrService.getRelationAttr(attrsVo.getAttrGroupId());
  15. attrsVo.setAttrs(attr);
  16. if ( attr!=null){
  17. return attrsVo;
  18. }
  19. return null;
  20. }).collect(Collectors.toList());
  21. collect.removeIf(Objects::isNull);
  22. return collect;
  23. }

방법 2: 프런트엔드 페이지에 판단 여부를 추가합니다.showBaseAttrs()방법 중for each앞에 하나 추가판단한다면

if (item.attrs != null && item.attrs.length > 0)