vant
vant copied to clipboard
[Bug Report] Slider 组件的 `step` 值相对较大时,组件可能返回超出 `max` 范围的值
Reproduction Link
https://codesandbox.io/p/devbox/vant-4-issue-template-forked-fw7zr3
Vant Version
4.9.21
Describe the Bug
问题描述
当 Slider 组件的 step 值相对较大时,format 函数可能返回超出 max 范围的值
Reproduce Steps
复现步骤
- 配置 Slider 组件:
min=20,max=100,step=30 - 将滑块拖拽到最右边
- 观察返回的格式化值
<template>
<van-slider v-model="value" :min="20" :max="100" :step="30" />
<p>当前值:{{ value }}</p>
</template>
<script setup>
import { ref } from 'vue'
const value = ref(0)
</script>
实际行为
拖动到最右侧时,value为110,超过了最大值100
期望行为
拖动到最右侧时,组件不应该返回超过max的值
我想提一个pr修复该问题,但当 min=20, max=100, step=30 时,存在两种可能的设计方案:
严格按 step 规律
-
合法值:
20, 50, 80
包含 max 值
-
合法值:
20, 50, 80, 100
请问哪种结果符合Slider组件的功能预期?
Device / Browser
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36
应该包含 max 值
应该包含 max 值
@inottn @chenjiahan I submitted a pull request for this issue, could you take a look? https://github.com/youzan/vant/pull/13632
yes, i also get this bug