Partage de technologie

Les spécifications ne sont pas affichées lors de la sortie des produits sur Guli Mall P85

2024-07-12

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

P85 parle de publier un produit et après avoir cliqué sur Suivant, je constate que les spécifications ne s'affichent pas.

Ouvrez la console et recherchez l'erreur forEach... erreur

Après avoir vérifié la cause du problème, j'ai constaté que les attributs associés aux groupes individuels dans les groupes renvoyés (attributs) peut être nul

Donc, à ce stade, vous devez vous assurer que les attrs renvoyés par le backend ne peuvent pas être nuls.

Méthode 1 : Filtrage back-end : utilisez la classe d'implémentation back-end pour juger et éliminer les groupes dont les attributs sont nuls.

  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éthode 2 : ajouter un jugement if à la page d'accueil, dansshowBaseAttrs()dans la méthodefor eachAjoutez-en un devantsi jugement

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