javascript - React Material UI OutlinedInput visar inte felmeddelande
Jag använder React och Material UI för att visa ett inramat inputfält. Jag kan få det att visa att det har uppstått ett fel med error-attributet inställt på true, men det uppstår ett problem när jag försöker lägga till helperText och mitt meddelande som ett attribut:
<OutlinedInput
margin="dense"
value=""
placeholder="my placeholder"
error
helperText="There has been an error" // Property 'helperText' does not exist on type 'IntrinsicAttributes & OutlinedInputProps'
/>
Finns det något sätt att använda både ett OutlinedInput och visa ett felmeddelande som hjälptext?
Svar #1
Du kan använda FormHelperText-komponenten från @material-ui/core.
const [accountId, setAccountId] = useState({ value: "", error: "" });
<FormControl variant="outlined">
<InputLabel htmlFor="accountId">Account Id</InputLabel>
<OutlinedInput
value={accountId.value}
onChange={(e) => setAccountId({value: e.target.value, error:""})}
inputProps={{
"aria-label": "Account Id",
}}
labelWidth={74}
error={!!accountId.error}
/>
{!!accountId.error && (
<FormHelperText error id="accountId-error">
{accountId.error}
</FormHelperText>
)}
</FormControl>
Svar #2
Du använder basinmatningskomponenten som används av TextField internt. Om du har något speciellt krav kan du komponera din egen textfält som visas här. Annars använd TextField med variant="outlined":
<TextField
margin="dense"
value=""
placeholder="my placeholder"
error
helperText="There has been an error"
variant="outlined"
/>
