我挣扎了几个小时来处理一项任务。我有一个来自材料 ui 的 redux 表单文本字段,我像这样使用它:
<Field
id="searchCif"
name="searchCif"
component={TextField}
floatingLabelText={SEARCHVIEW_HINT_CIF}
disabled={(afm !== undefined)}
validate={[requireValidator, onlyNumeric]}
/>
validate 属性将两个函数作为参数:
const requireValidator = (value, intl) => (
value === undefined ? intl.formatMessage({ id: 'error.search.cif.afm' }) :
undefined
);
const onlyNumeric = (value, intl) => (
(value !== undefined && !(/^([0-9])+$/g).test(value)) ?
intl.formatMessage({ id: 'error.search.cif.afm.only.number' }) :
undefined
);
我使用 intl 因为我的信息应该被翻译。但是一个错误显示intl.formatted message is not a function
。因此我写道:
validate={() => [requireValidator(value, intl), onlyNumeric(value, int)]}
。错误未显示,但验证无法正常工作。有任何想法吗??