我有一个formik格式的表单,字段通常如下所示:
<Field
component={TextField}
name="phoneNumber"
type="text"
required
label={t('containers:CommonFields.phoneNumber')}
variant="outlined"
margin="normal"
/>
其中字段是从Formik导入的,而TextField只是样式为formik-material-ui textfield:
import { TextField } from 'formik-material-ui';
import breakpoints from 'styles/breakpoints';
import styled from 'styled-components/macro';
export default styled(TextField)`
${breakpoints.md`
max-width: 320px;
`};
width: 100%;
`;
我想做的是使用react-input-mask将输入掩码添加到该字段。这是我到目前为止所得到的:
https://codesandbox.io/s/priceless-currying-hryv1
不幸的是,输入没有呈现
发布于 2020-09-17 17:45:23
发布于 2020-09-25 18:46:09
您需要在FormikTextField组件中更改一些内容。
最后,工作组件应该看起来像这样
const FormikTextField = (props) => {
return (
<InputMask
{...props}
{...props.field}
mask="(0)999 999 99 99"
disabled={false}
maskChar=" "
>
{(inputProps) => <StyledTextField {...inputProps} />}
</InputMask>
);
};
发布于 2020-09-28 22:36:41
请看一下working version。我认为我们需要使用formik
提供的useField
钩子,并在formik
表单中直接使用组件,而不是作为组件属性。
https://stackoverflow.com/questions/63934723
复制相似问题