import React, { useState, useEffect, useMemo } from "react"; import { Range } from "@nutui/nutui-react-taro"; import "./index.scss"; interface RangeProps { min?: number; max?: number; step?: number; value?: [number, number]; onChange?: (value: [number, number]) => void; disabled?: boolean; } const NtrpRange: React.FC = ({ min = 1.0, max = 5.0, step = 0.5, value = [min, max], onChange, disabled = false, }) => { const [currentValue, setCurrentValue] = useState<[number, number]>(value); useEffect(() => { setCurrentValue(value); }, [value]); const handleChange = (val: [number, number]) => { console.log("Range value changed:", val); setCurrentValue(val); onChange?.(val); }; const marks = useMemo(() => { let marksMap = {}; for (let i = min + step; i < max; i += step) { marksMap[i] = ""; } return marksMap; }, [min, max, step]); const rangContent = useMemo(() => { const [start, end] = currentValue || []; if (start === min && end === max) { return "不限"; } return `${start.toFixed(1)} - ${end.toFixed(1)}之间`; }, [currentValue, min, max]); return (
icon

NTRP水平区间

{rangContent}

{min} {max}
{/* 调试信息 */}
当前值: {currentValue[0].toFixed(1)} - {currentValue[1].toFixed(1)}
); }; export default NtrpRange;