Utilisez ReactJS TypeScript MUI, utilisez useState pour définir la valeur de TextField et ajoutez la fonction d'événement onchange pour TextField
<p>Je suis un débutant en développement avec ReactJS et MUI et j'ai un formulaire de champ ReactJS TypeScript avec MuiText. Vous souhaitez pouvoir utiliser la méthode <code>useState</code> pour modifier la valeur d’un champ de texte. </p>
<p>Ajoutez également la fonction <code>onchnage</code>Je peux ajouter la fonction onchange pour le champ de texte normal, mais je ne sais pas comment l'ajouter pour le champ de texte MUI ?</p>
<pre class="brush:php;toolbar:false;">import * as React from 'react';
importer { useState } depuis "react"
importer le bouton depuis '@mui/material/Button' ;
importer CssBaseline depuis '@mui/material/CssBaseline' ;
importer TextField depuis '@mui/material/TextField' ;
importer la grille depuis '@mui/material/Grid' ;
importer la boîte depuis '@mui/material/Box' ;
importer un conteneur depuis '@mui/material/Container' ;
importer { createTheme, ThemeProvider } depuis '@mui/material/styles' ;
importer { useForm, SubmitHandler, Controller } depuis 'react-hook-form' ;
importer * comme ouais à partir de « ouais » ;
importer { yupResolver } depuis '@hookform/resolvers/yup' ;
interface IFormInputs {
chemin du fichier : chaîne ;
}
schéma const = ouais.object().shape({
chemin du fichier : yup.string().min(4).required(),
});
const thème = createTheme();
fonction d'exportation par défaut MuiTextField() {
const {
contrôle,
handleEnvoyer,
formState : {erreurs},
} = useForm<IFormInputs>({
résolveur : yupResolver (schéma),
});
const [chemin du fichier, setFilepath] = useState("vodeo.mp3");
const onSubmit : SubmitHandler<IFormInputs> = (données) => {
console.log('données soumises : ', données);
console.log('chemin du fichier : ', data.chemin du fichier);
} ;
retour (
<ThemeProvider theme={theme}>
<Composant conteneur="principal" maxWidth="lg">
<CssBaseline />
<Boîte
sx={{
marginTop : 8,
affichage : 'flex',
flexDirection : 'colonne',
alignItems : 'centre',
}}
>
<form onSubmit={handleSubmit(onSubmit)}>
<Boîte sx={{ mt: 3 }}>
<Espacement des conteneurs de grille={2}>
<Élément de grille xs={16} sm={6}>
<Contrôleur
name="chemin du fichier"
contrôle={contrôle}
valeur par défaut=""
render={({ champ }) => (
<Champ de texte
{...champ}
label="Chemin du fichier"
erreur={!!erreurs.filepath}
helperText={erreurs.filepath ? erreurs.chemin de fichier?.message : ''}autoComplete="chemin-fichier"
pleine largeur
/>
)}
/>
</Grille>
<Bouton
type="soumettre"
variante = "contenu"
sx={{ mt : 3, mo : 2 }}
>
Soumettre
</Bouton>
</Grille>
≪/Boîte>
</formulaire>
≪/Boîte>
</Conteneur>
</ThemeProvider>
);
}</pré>
<p>Mise à jour :
Voici le lien de partage de code : https://codesandbox.io/s/boring-water-m47uxn?file=/src/App.tsx</p>
<p>Lorsque nous modifions la valeur de la zone de texte en <code>auto</code>, nous souhaitons modifier la valeur de la zone de texte en <code>audio.mp3</code>, mais ce n'est pas le cas. ça ne marche pas. </p>