Technologieaustausch

Bei der Veröffentlichung von Produkten auf Guli Mall P85 werden keine Spezifikationen angezeigt

2024-07-12

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

P85 sagte, dass ich nach der Veröffentlichung des Produkts und dem Klicken auf „Weiter“ festgestellt habe, dass die Spezifikationen nicht angezeigt wurden.

Öffnen Sie die Konsole und suchen Sie nach dem Fehler „forEach...“.

Nachdem ich die Ursache des Problems überprüft hatte, stellte ich fest, dass die zugehörigen Attribute einzelner Gruppen in den zurückgegebenen Gruppen (Attribute) kann null sein

Daher müssen Sie zu diesem Zeitpunkt sicherstellen, dass die vom Backend zurückgegebenen Attribute nicht null sein dürfen.

Methode 1: Back-End-Filterung: Verwenden Sie die Back-End-Implementierungsklasse, um Gruppen zu beurteilen und zu eliminieren, deren Attribute null sind.

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

Methode 2: Fügen Sie das Urteil zur Startseite hinzu, inshowBaseAttrs()in der Methodefor eachFügen Sie eins vorne hinzuwenn Urteil

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