Compartir tecnología

Las especificaciones no se muestran al lanzar productos en Guli Mall P85

2024-07-12

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

P85: Después de publicar el producto y hacer clic en Siguiente, descubrí que no se mostraban las especificaciones.

Abra la consola y busque el error para cada... error

Después de verificar la causa del problema, encontré que los atributos asociados de grupos individuales en los grupos devueltos (atributos) puede ser nulo

Entonces, en este momento, debe asegurarse de que los atributos devueltos por el backend no puedan ser nulos.

Método 1: filtrado de back-end: utilice la clase de implementación de back-end para juzgar y eliminar grupos cuyos atributos sean nulos.

  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. }

Método 2: agregue el juicio if a la página de inicio, enshowBaseAttrs()en métodofor eachAgrega uno al frentesi juicio

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