diff --git a/apps/web/src/components/common/DurationWheelPicker/index.tsx b/apps/web/src/components/common/DurationWheelPicker/index.tsx index a087ca853..09faa4245 100644 --- a/apps/web/src/components/common/DurationWheelPicker/index.tsx +++ b/apps/web/src/components/common/DurationWheelPicker/index.tsx @@ -7,7 +7,7 @@ * - 支持触摸 / 鼠标滚轮 / 点击跳转;滑动松手后吸附到最近项 * - 范围 15–30 秒,步长 1 秒 */ -import React, { useEffect, useRef, useState, useCallback } from "react" +import React, { useEffect, useRef, useState, useCallback, useMemo } from "react" import "./DurationWheelPicker.css" export interface DurationWheelPickerProps { @@ -41,8 +41,11 @@ const DurationWheelPicker: React.FC = ({ height = 200, disabled = false, }) => { - const options: number[] = [] - for (let v = min; v <= max; v += step) options.push(v) + const options: number[] = useMemo(() => { + const arr: number[] = [] + for (let v = min; v <= max; v += step) arr.push(v) + return arr + }, [min, max, step]) const listRef = useRef(null) const [active, setActive] = useState(value)