import React, { useState, useEffect } from 'react' import { View, Text } from '@tarojs/components' import { InputNumber } from '@nutui/nutui-react-taro' import { Checkbox } from '@nutui/nutui-react-taro' import './NumberInterval.scss' interface NumberIntervalProps { value: { min: number, max: number, organizer_joined: boolean } onChange: (value: { min: number, max: number, organizer_joined: boolean }) => void min: number max: number } const NumberInterval: React.FC = ({ value, onChange, min, max }) => { const [organizer_joined, setOrganizerJoined] = useState(true); const [minParticipants, setMinParticipants] = useState(1); const [maxParticipants, setMaxParticipants] = useState(1); useEffect(() => { if (value) { setOrganizerJoined(value.organizer_joined); setMinParticipants(value.min); setMaxParticipants(value.max); } console.log(value, 'valuevaluevaluevaluevaluevalue'); }, [value]); const handleChange = (value: { min: number | string, max: number | string, organizer_joined: boolean }) => { const toNumber = (v: number | string): number => typeof v === 'string' ? Number(v) : v const { min, max, organizer_joined } = value; onChange({ min: toNumber(min), max: toNumber(max), organizer_joined }) } return ( 最小成局数 handleChange({ min: value, max: maxParticipants, organizer_joined: organizer_joined })} formatter={(value) => `${value}人`} /> 球局总人数 handleChange({ min: minParticipants, max: value, organizer_joined: organizer_joined })} min={minParticipants} max={max} formatter={(value) => `${value}人`} /> handleChange({ min: minParticipants, max: maxParticipants, organizer_joined: checked })} /> 我也参与此球局 ) } export default NumberInterval