简单的自定义表单控件

核心为onChang事件,赋值需要关注value

 

 <Form.Item
                    name='position'
                    label="位置"
                    style={itemStyle}
                >
                    <InputXYZ />
                </Form.Item >

 

 

const InputXYZ = (props) => {
    const { id, value = {}, onChange } = props;
    const [number, setNumber] = useState({});
    const onNumberChange = useCallback((e, name) => {

        console.log();
        if (Number.isNaN(Number(e.target.value))) return;
        console.log(!Number.isNaN(e.target.value));
        const newNumber = { ...number, [e.target.name]: e.target.value }
        setNumber(newNumber);
        onChange?.({
            number,
            ...value,
            ...newNumber,
        });
    }, [number])
    return (
        <span id={id} style={{ display: 'flex', justifyContent: 'space-between' }}>
            <Input
                type="text"
                value={value.x}
                name="x"
                onChange={onNumberChange}
                style={{
                    width: 80,
                }}
            />
            <Input
                type="text"
                name="y"
                value={value.y}
                onChange={onNumberChange}
                style={{
                    width: 80,
                }}
            />
            <Input
                type="text"
                name="z"
                value={value.z}
                onChange={onNumberChange}
                style={{
                    width: 80,
                }}
            />

        </span>
    );

}

 

posted @   SimoonJia  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示