Чтобы использовать error
опору TextField
, вам нужно будет самостоятельно управлять ошибками (так же, как вы управляете значением для своих полей).
Для этого - значение error
не должен быть фиксированным, но должен быть истинным / ложным, основываясь на некоторых вычислениях, которые вы делаете.
Я использовал ваш код для проверки, равняется ли значение (для каждого поля) указанному c ценность. Это не реальный пример, и вы, вероятно, захотите изменить его на какую-то проверку регулярных выражений, но это должно дать вам хорошую отправную точку:
export default function SubmitForm() {
const classes = useStyles();
const [form, setForm] = useState({ name: "aaa", email: "bbb", remember: "ccc" });
const isValidData = {name: "aaa", email: "bbb", remember: "ccc"};
...
const checkIsValid = (fieldName, value) => {
// Here you probably what to check this to some regex validation
if (isValidData[fieldName] === value) {
return true;
}
return false;
}
return (
...
{Object.keys(form).map((objKey, idx) => {
return (
<Grid item xs={12} sm={6} md={4} key={idx}>
<TextField
error={!checkIsValid(objKey, form[objKey])}
...
/>
</Grid>
);
})}
);
}
Для см. полный рабочий пример, пожалуйста, проверьте это: https://codesandbox.io/s/mui-textfield-control-errors-z0tfo?file= / демо. js