微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

onBlur 不更新 InputMask 中的掩码

如何解决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 举报,一经查实,本站将立刻删除。