onBlur 不更新 InputMask 中的掩码

问题描述

我正在使用 React InputMask 来屏蔽我的输入。我的自定义组件 MyInputMask 带有代码

const MyInputMask = (props: MyMaskProps) => {
    const { value } = field
    const Meta = form.getFieldMeta(field.name)

    const inputMaskProps = {
        mask: mask,maskChar: maskChar,value: value
    }

    if (onBlur) {
        inputMaskProps.onBlur = onBlur
    }

    return (<div>
        <InputMask {...inputMaskProps} />
    </div>

在我的父组件中,我有类似的东西:

const [mask,setMask] = useState('999')

 const handleBlur = () => {
        setMask("99.9")
    }
    

<MyInputMask mask={mask} maskChar=" " onBlur={handleBlur} />; 

所以我的第一个掩码应该是 999(在用户开始打字之前和打字时),然后在字段未聚焦(onBlur)之后它应该是 99.9,所以我希望用户输入的输入被格式化通过第二个面具。例如,用户键入 789,在他单击另一个字段后,值 789 应为 78.9。 用这段代码在字段失焦后,格式化没有完成,所以我还是789,不是78.9 谁能帮我理解为什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)