input 子组件封装

68 阅读1分钟

input 子组件封装 ,接收的数据不要做额外的state的处理。可能因为异步关系。和加载问题。不能响应及时。

 

interface PriceValue {
    relation?: any;
}
interface PriceInputProps {
    value?: PriceValue;
    onChange?: (value) => void;
}
// 且和或的显示处理
const PriceInput: React.FC<PriceInputProps> = ({ value, onChange }) => {
    console.log(value, '===')
    // 注释部分为错误使用
    // const [relation, setRelation] = useState('');
    // useEffect(() => {
    //     if (value == '1') {
    //         setRelation('且');
    //     } else {
    //         setRelation('或');
    //     }
    // }, [])

    // const triggerChange = (changedValue) => {
    //     console.log('changedValue', changedValue)
    //     const newValue2 = changedValue === '或' ? '0' : '1';
    //     onChange && onChange(newValue2)
    // };

    // const onNumberChange2 = (relation) => {
    //     const changeText = relation.target.innerText == '或' ? '且' : '或'
    //     console.log(changeText, 'changeText')
    //     setRelation(changeText)
    //     triggerChange(changeText);
    //     console.log(relation.target.innerText)
    // }


    const onNumberChange = (relation) => {
        const updatedRelation = relation == '0' ? '1' : '0';
        onChange && onChange(updatedRelation)
    }

    return (
        <span>

            <div onClick={() => onNumberChange(value)} className='my-input'>
                {value == '0' ? '或' : '且'}
            </div>
            {/* <Input
        style={{width:'40px'}}
        type="text"
        readOnly
        value={ relation}
        onClick={onNumberChange}
        /> */}
        </span>
    );
};