office-ui-fabric - 如何从 MaskedTextField 获取未屏蔽的值 - FluentUI
问题描述
我正在使用 Microsoft FluentUI 库中的 MaskedTextField 组件。我试图从组件中获取未屏蔽的价值,但没有成功。我尝试了通过将值传递给道具的受控组件方法,以及通过将默认值传递给道具的不受控制的组件方法;并检查了 OnChange 事件处理程序中的组件属性,但我没有发现存储未屏蔽值的属性。
我做对了吗?有什么解决方法吗?
谢谢!
解决方案
使用命令式 API,可以获得未屏蔽的值。文档中的一个重要警告:
所有填充格式字符的值,如果不是所有格式字符都被填充,则为 undefined
这是一个在单击按钮时提取值的示例:
const TextFieldBasicExample: React.FunctionComponent = () => {
const [val, setVal] = React.useState("");
const [fetchedValue, setFetchedValue] = React.useState("");
const ref = React.useRef(null);
const fetchValue = React.useCallback(() => {
setFetchedValue(ref.current.value);
}, [setFetchedValue, ref]);
const obj = {val, fetchedValue};
return (
<>
<MaskedTextField ref={ref} label="With input mask" mask="m\ask: (999) 999 - 9999" value={val} onChange={(_, theVal) => setVal(theVal)} />
<button onClick={fetchValue}>Get value</button>
<pre>{JSON.stringify(obj, null, 2)}</pre>
</>
);
};
(完整的工作示例)
如果此 API 不能满足您的需求,可能值得打开一个问题,因为有几种直接的方法可以改进它。
推荐阅读
- algorithm - 图中的所有链
- nginx - Nginx 返回 404
- ios - 使用系统应用程序选择器打开任意文件
- python - 无法更改数据框中的值?
- python - 使用 TensorFlow Serving (Tensorflow 2.2) 为 Keras 模型提供服务的非确定性结果
- r - 在 R 包中使函数完全不可访问
- swift - 如何在 SwiftUI 中将变量从“更高视图”转换为“下视图”?
- express - 无服务器快速应用程序在路由中的逻辑完成之前终止
- c++ - 通过再次用自己替换某些字符重新编译时,完全相同的代码会产生不同的输出?
- javascript - nodejs express路由器重新处理请求