Compartilhamento de tecnologia

As especificações não são exibidas ao lançar produtos no Guli Mall P85

2024-07-12

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

P85 fala sobre a publicação de um produto e após clicar em Avançar, descubro que as especificações não são exibidas.

Abra o console e encontre o erro forEach... error

Depois de verificar a causa do problema, descobri que os atributos associados de grupos individuais nos grupos retornados (atributos) pode ser nulo

Portanto, neste momento, você precisa garantir que os atributos retornados pelo back-end não possam ser nulos.

Método 1: Filtragem de back-end: Use a classe de implementação de back-end para julgar e eliminar grupos cujos atributos são 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: adicione um julgamento à página inicial, emshowBaseAttrs()no métodofor eachAdicione um na frentese julgamento

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