NervJS / taro

开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/
https://docs.taro.zone/
Other
35.64k stars 4.8k forks source link

3.6.4版 swiper问题 1:轮播初始时,不是第一栏,而是最后一栏 并且强制给current设为0无效 问题2:current属性bug,在最后一项到第一项时轮播不全 #13589

Closed huachuang1010 closed 1 year ago

huachuang1010 commented 1 year ago

相关平台

H5

浏览器版本: Chrome 使用框架: React

复现步骤

` onChange=(event)=>{ console.log(event.detail.current) this.setState({ current:event.detail.current }) } <Swiper className='test-h' indicatorColor='#999' indicatorActiveColor='#333' current={this.state.current} circular onChange={(event)=>{this.onChange(event)}} indicatorDots autoplay={true}

1 2 3

`

期望结果

1,轮播初始时展示第一栏 2,current正常

实际结果

1,轮播初始时展示最后一栏 2,current不正常

环境信息

Microsoft Windows [版本 10.0.19044.2728]
(c) Microsoft Corporation。保留所有权利。

E:\myApp19>taro info
👽 Taro v3.6.4

  Taro CLI 3.6.4 environment info:
    System:
      OS: Windows 10 10.0.19044
    Binaries:
      Node: 16.18.1 - C:\Program Files\nodejs\node.EXE
      Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
      npm: 8.19.2 - C:\Program Files\nodejs\npm.CMD
    npmPackages:
      @tarojs/cli: 3.6.4 => 3.6.4
      @tarojs/components: 3.6.4 => 3.6.4
      @tarojs/helper: 3.6.4 => 3.6.4
      @tarojs/mini-runner: 3.6.4 => 3.6.4
      @tarojs/plugin-framework-react: 3.6.4 => 3.6.4
      @tarojs/plugin-platform-alipay: 3.6.4 => 3.6.4
      @tarojs/plugin-platform-h5: 3.6.4 => 3.6.4
      @tarojs/plugin-platform-jd: 3.6.4 => 3.6.4
      @tarojs/plugin-platform-qq: 3.6.4 => 3.6.4
      @tarojs/plugin-platform-swan: 3.6.4 => 3.6.4
      @tarojs/plugin-platform-tt: 3.6.4 => 3.6.4
      @tarojs/plugin-platform-weapp: 3.6.4 => 3.6.4
      @tarojs/react: 3.6.4 => 3.6.4
      @tarojs/runtime: 3.6.4 => 3.6.4
      @tarojs/shared: 3.6.4 => 3.6.4
      @tarojs/taro: 3.6.4 => 3.6.4
      @tarojs/webpack-runner: 3.6.4 => 3.6.4
      babel-preset-taro: 3.6.4 => 3.6.4
      eslint-config-taro: 3.6.4 => 3.6.4
      react: ^18.0.0 => 18.2.0

E:\myApp19>
huachuang1010 commented 1 year ago

在设置了current,并且onChange修改current的情况下 自动轮播时,第一项到最后一项, 最后一项到第一项, 滚动距离位置不对。

huachuang1010 commented 1 year ago

不用onChange修改current, 用其他点击事件修改current, 也会出现不生效的情况 (自动轮播后,点击点击事件修改current)

ZakaryCode commented 1 year ago

current属性bug,在最后一项到第一项时轮播不全

这里未能复现,可以补一个用例看看具体使用

huachuang1010 commented 1 year ago

你好,手指滑动切换时会出现问题,current属性bug,在最后一项到第一项时轮播不全。   我在附件里放入了录屏和代码

------------------ 原始邮件 ------------------ 发件人: "NervJS/taro" @.>; 发送时间: 2023年4月13日(星期四) 上午10:50 @.>; @.**@.>; 主题: Re: [NervJS/taro] 3.6.4版 swiper问题 1:轮播初始时,不是第一栏,而是最后一栏 并且强制给current设为0无效 问题2:current属性bug,在最后一项到第一项时轮播不全 (Issue #13589)

current属性bug,在最后一项到第一项时轮播不全

这里未能复现,可以补一个用例看看具体使用

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

ZakaryCode commented 1 year ago

我在附件里放入了录屏和代码

未能找到附件,请在 issue 中附上而非通过邮件

huachuang1010 commented 1 year ago

抱歉,issue里我还不知道通过什么方式传附件和代码给,只能大体发下 import { Component, PropsWithChildren } from 'react' import { View, Text,Swiper,SwiperItem } from '@tarojs/components' import './index.scss'

export default class Index extends Component { constructor(props){ super(props); this.state = { current:0, scurrent:0 } } componentWillMount () { }

componentDidMount () { }

componentWillUnmount () { }

componentDidShow () { } onChange=(event)=>{ console.log(event.detail.current) this.setState({ current:event.detail.current,

}) } onclickChange=(index)=>{ console.log(index) this.setState({ current:index,

}) } componentDidHide () { }

render () { return (

{this.onclickChange(0)}} className='demo-text-1' style='background:red'>0
      <View onClick={()=>{this.onclickChange(1)}} className='demo-text-1' style='background:red'>1</View>
          <View onClick={()=>{this.onclickChange(2)}} className='demo-text-1' style='background:red'>2</View>
    <Swiper
    className='test-h'
    indicatorColor='#999'
    indicatorActiveColor='#333'
    current={this.state.current}
    circular
    onChange={(event)=>{this.onChange(event)}}
    indicatorDots
    autoplay={true}
    >
    <SwiperItem>
      <View className='demo-text-1' style='background:red'>轮播1</View>
    </SwiperItem>
    <SwiperItem>
      <View className='demo-text-2' style='background:green'>轮播2</View>
    </SwiperItem>
    <SwiperItem>
      <View className='demo-text-3' style='background:blue'>轮播3</View>
    </SwiperItem>
  </Swiper>
  </View>
)

} }

huachuang1010 commented 1 year ago

复现问题的视频连接:https://jvod.300hu.com/vod/product/d5f89f54-ae10-43ad-800b-294e67109eea/1fda0ce7c6394bef87a15d39798fbedd.mp4

------------------ 原始邮件 ------------------ 发件人: "NervJS/taro" @.>; 发送时间: 2023年4月14日(星期五) 下午4:12 @.>; @.**@.>; 主题: Re: [NervJS/taro] 3.6.4版 swiper问题 1:轮播初始时,不是第一栏,而是最后一栏 并且强制给current设为0无效 问题2:current属性bug,在最后一项到第一项时轮播不全 (Issue #13589)

我在附件里放入了录屏和代码

未能找到附件,请在 issue 中附上而非通过邮件

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

ZakaryCode commented 1 year ago

复现问题的视频连接:https://jvod.300hu.com/vod/product/d5f89f54-ae10-43ad-800b-294e67109eea/1fda0ce7c6394bef87a15d39798fbedd.mp4‍

image
huachuang1010 commented 1 year ago

怎么传视频和代码,

huachuang1010 commented 1 year ago

复制我上面的视频地址,打不开,再把地址栏.mp4后面的去掉就打开了

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2023年4月14日(星期五) 下午4:49 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [NervJS/taro] 3.6.4版 swiper问题 1:轮播初始时,不是第一栏,而是最后一栏 并且强制给current设为0无效 问题2:current属性bug,在最后一项到第一项时轮播不全 (Issue #13589)

复现问题的视频连接:https://jvod.300hu.com/vod/product/d5f89f54-ae10-43ad-800b-294e67109eea/1fda0ce7c6394bef87a15d39798fbedd.mp4

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

ZakaryCode commented 1 year ago

复制我上面的视频地址,打不开,再把地址栏.mp4后面的去掉就打开了

依旧不行

怎么传视频和代码,

代码给仓库,视频在 comment 处拖拽上来就会自动上传

huachuang1010 commented 1 year ago

https://user-images.githubusercontent.com/58833434/232022526-c8ec8dff-efed-4bb5-838f-22eea621a7bb.mp4

huachuang1010 commented 1 year ago

swiper里 current={this.state.current}   onChange={(event)=>{this.onChange(event)}}     函数 onChange=(event)=>{  console.log(event.detail.current) this.setState({  current:event.detail.current, }) } 就可以复现问题

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2023年4月14日(星期五) 晚上6:31 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [NervJS/taro] 3.6.4版 swiper问题 1:轮播初始时,不是第一栏,而是最后一栏 并且强制给current设为0无效 问题2:current属性bug,在最后一项到第一项时轮播不全 (Issue #13589)

复制我上面的视频地址,打不开,再把地址栏.mp4后面的去掉就打开了

依旧不行

怎么传视频和代码,

代码给仓库,视频在 comment 处拖拽上来就会自动上传

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

ZakaryCode commented 1 year ago

这些在 #13662 中已经修复,轮播不全是指,这个没看到

huachuang1010 commented 1 year ago

swiper里 current={this.state.current}   onChange={(event)=>{this.onChange(event)}}     函数 onChange=(event)=>{  console.log(event.detail.current) this.setState({  current:event.detail.current, }) } h5里,鼠标滑动图片切换,最后一项切第一项,就可以复现问题

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2023年4月17日(星期一) 上午10:41 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [NervJS/taro] 3.6.4版 swiper问题 1:轮播初始时,不是第一栏,而是最后一栏 并且强制给current设为0无效 问题2:current属性bug,在最后一项到第一项时轮播不全 (Issue #13589)

这些在 #13662 中已经修复,轮播不全是指,这个没看到

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

ZakaryCode commented 1 year ago

h5里,鼠标滑动图片切换,最后一项切第一项,就可以复现问题

这个并不能够复现,还是需要提供一个最小复现的仓库用于定位

huachuang1010 commented 1 year ago

关于复现代码,放在这里https://github.com/huachuang1010/tarotest

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2023年4月17日(星期一) 中午11:05 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [NervJS/taro] 3.6.4版 swiper问题 1:轮播初始时,不是第一栏,而是最后一栏 并且强制给current设为0无效 问题2:current属性bug,在最后一项到第一项时轮播不全 (Issue #13589)

h5里,鼠标滑动图片切换,最后一项切第一项,就可以复现问题

这个并不能够复现,还是需要提供一个最小复现的仓库用于定位

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

huachuang1010 commented 1 year ago

最新3.6.5版 swiper问题 1:轮播初始时,不是第一栏,而是最后一栏 并且强制给current设为0无效 问题2:current属性bug,在最后一项到第一项时轮播不全 问题依然存在