uni-app 【报Bug】vue3 nvue页面 ios平台 swiper组件 indicator-dots,indicator-color,indicator-active-color属性无效

uni-app 【报Bug】vue3 nvue页面 ios平台 swiper组件 indicator-dots,indicator-color,indicator-active-color属性无效

开发环境 版本号 项目创建方式
Windows Windows 10 家庭中文版 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:3.4.7

手机系统:iOS

手机系统版本号:iOS 15

手机厂商:苹果

手机机型:苹果6s plus

页面类型:nvue

vue版本:vue3

打包方式:离线

示例代码:

<swiper
    :indicator-dots="false"   
    :vertical="true"   
    :autoplay="true"   
    :circular="true"   
    :interval="10000"  
    :disable-touch="true"  
    indicator-color="rgba(0, 0, 0, 0)"  
    indicator-active-color="rgba(0, 0, 0, 0)"  
>
    <swiper-item v-for="(item, index) in zjData" :key="index" style="height:22px;overflow-y:hidden;">
        <text style="color:#999;font-size:14px;line-height:22px;">{{item}}</text>
    </swiper-item>
</swiper>

更多关于uni-app 【报Bug】vue3 nvue页面 ios平台 swiper组件 indicator-dots,indicator-color,indicator-active-color属性无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

还有 vue3 nvue页面 ios平台 swiper组件内的 组件,class一样失效, <swiper>
<swiper-item>
<view class="swiper-image" style="height:20rpx;"></view>
</swiper-item>
</swiper>

<style scoped> .swiper-image { height:2000rpx; } </style>

以上代码 class=swiper-image 类是无效的,style有效。。

更多关于uni-app 【报Bug】vue3 nvue页面 ios平台 swiper组件 indicator-dots,indicator-color,indicator-active-color属性无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


以上代码并不是style覆盖class,同时写style,class只是演示,单独写class是无效的

Bug已确认,下版修复

3.4.11 已修复

uni-app 中,使用 vue3 开发 nvue 页面时,swiper 组件的 indicator-dotsindicator-colorindicator-active-color 属性在 iOS 平台上无效的问题,可能是由于平台差异或 uni-appnvue 实现方式导致的。

以下是一些可能的解决方案和排查步骤:

1. 检查 nvue 页面结构

确保你的 nvue 页面结构正确,并且 swiper 组件及其属性被正确使用。例如:

<template>
  <swiper :indicator-dots="true" indicator-color="#999" indicator-active-color="#333">
    <swiper-item>
      <view class="item">1</view>
    </swiper-item>
    <swiper-item>
      <view class="item">2</view>
    </swiper-item>
    <swiper-item>
      <view class="item">3</view>
    </swiper-item>
  </swiper>
</template>

2. 确认平台差异

nvue 页面的渲染方式与 vue 页面不同,特别是在 iOS 平台上,某些属性可能不支持或表现不一致。可以查阅 uni-app 官方文档,确认 swiper 组件在 nvue 页面中的支持情况。

3. 使用原生组件

如果 swiper 组件的某些属性在 nvue 页面中无效,可以考虑使用原生组件替代。例如,使用 scroll-viewview 组件手动实现轮播效果。

4. 检查 uni-app 版本

确保你使用的是最新版本的 uni-app,因为某些问题可能在后续版本中得到修复。可以通过以下命令更新 uni-app

npm install -g @vue/cli
vue upgrade

5. 提交 Issue

如果以上方法都无法解决问题,可以在 uni-app 的 GitHub 仓库或官方论坛提交 Issue,详细描述问题并提供相关代码,以便开发团队排查和修复。

6. 使用 vue 页面

如果 nvue 页面的问题无法解决,可以考虑使用 vue 页面代替 nvue 页面,因为 vue 页面的兼容性和支持性更好。

7. 自定义指示器

如果 indicator-dotsindicator-colorindicator-active-color 属性无效,可以通过自定义样式实现指示器效果。例如:

<template>
  <swiper>
    <swiper-item>
      <view class="item">1</view>
    </swiper-item>
    <swiper-item>
      <view class="item">2</view>
    </swiper-item>
    <swiper-item>
      <view class="item">3</view>
    </swiper-item>
  </swiper>
  <view class="indicator">
    <view class="dot" :class="{ active: currentIndex === 0 }"></view>
    <view class="dot" :class="{ active: currentIndex === 1 }"></view>
    <view class="dot" :class="{ active: currentIndex === 2 }"></view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      currentIndex: 0
    };
  },
  methods: {
    onSwiperChange(e) {
      this.currentIndex = e.detail.current;
    }
  }
};
</script>

<style>
.indicator {
  display: flex;
  justify-content: center;
  margin-top: 10px;
}

.dot {
  width: 8px;
  height: 8px;
  background-color: #999;
  border-radius: 50%;
  margin: 0 4px;
}

.dot.active {
  background-color: #333;
}
</style>
回到顶部