You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt实现无限加载时第二页数据已获取但不渲染问题求助

排查解决步骤
    1. 保证父组件数据的响应性
      Vue2中如果未在data中提前声明productsAndSkus,后续赋值无法触发响应式更新,需要在父组件补充声明:
    data() {
      return {
        productsAndSkus: []
      }
    }
    
    Vue3组合式API场景下,需要确保用ref或reactive包裹响应式数据,更新时操作对应value属性。
    1. 检查子组件props声明
      确保my-products子组件已正确声明接收productsAndSkus属性:
    props: {
      productsAndSkus: {
        type: Array,
        default: () => []
      }
    }
    
    1. 补全子组件渲染逻辑
      你当前提供的子组件模板中仅包含无限加载触发组件,没有遍历productsAndSkus渲染商品项的逻辑,需补充对应的v-for渲染代码:
    <template>
      <!-- 补全v-if对应逻辑,避免v-else不生效 -->
      <div v-if="loading">加载中</div>
      <client-only v-else>
        <!-- 新增列表渲染逻辑 -->
        <div v-for="product in productsAndSkus" :key="product.id" class="product-card">
          <!-- 你的商品展示内容 -->
        </div>
        <infinite-loading
          ref="infiniteLoader"
          :distance="800"
          force-use-infinite-wrapper
          @infinite="infiniteHandler"
        >
          <div slot="no-more" />
        </infinite-loading>
      </client-only>
    </template>
    
    1. 排查子组件本地数据同步问题
      如果子组件内将props的值赋值给了本地变量用于渲染,需要添加watch监听props变化同步更新本地数据:
    // Vue2 示例
    watch: {
      productsAndSkus: {
        handler(newVal) {
          this.localProductList = newVal
        },
        deep: true
      }
    }
    

内容的提问来源于stack exchange,提问作者francky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:48:01