J'ai deux champs obligatoires dans mon formulaire. Je veux que la couleur de l'astérisque soit rouge . Actuellement, il est noir. J'utilise la bibliothèque de réactions de l'interface utilisateur matérielle?
voici mon code
https://codesandbox.io/s/r7lq1jnjl4
documents
https://material-ui.com/demos/text-fields/
<FormControl>
<TextField
required
InputLabelProps={{
shrink: true
}}
id="standard-name"
label="Name"
margin="normal"
helperText="Some important text"
/>
</FormControl>
3 Réponses :
D'après cette documentation sur la façon pour personnaliser les composants via des remplacements de thème pour un FormLabel (qui inclura également InputLabel ) , vous devez utiliser createMuiTheme et ajouter les remplacements suivants:
<MuiThemeProvider theme={formLabelsTheme}>
<form noValidate autoComplete="off">
...
...
...
</form>
</MuiThemeProvider>
Ensuite, vous enroulez votre dans un comme ceci:
const formLabelsTheme = createMuiTheme({
overrides: {
MuiFormLabel: {
asterisk: {
color: '#db3131',
'&$error': {
color: '#db3131'
},
}
}
}
})
Voici un sandbox de code fourchu qui montre ce code en action.
Puisque vous créez déjà un thème, vous pouvez simplement mettre vos remplacements dans ce thème, mais vous aurez besoin pour déplacer votre vers le que vous avez déjà dans votre code.
La réponse d'Alvin montre comment faire cela globalement dans votre thème. Vous pouvez également le faire au cas par cas en utilisant le FormLabel classe astérisque via le code InputLabel > accessoires .
Voici les parties pertinentes de votre code que j'ai modifiées. Notez également que le comportement par défaut de l'astérisque est qu'il soit rouge si l'entrée est dans un état "erreur". Par exemple, si vous ajoutez la propriété error au TextField , l'astérisque sera rouge, mais cela a également des effets supplémentaires sur le style au-delà de l'astérisque.
const StyledApp = withStyles(styles)(App);
<TextField
required
InputLabelProps={{
shrink: true,
FormLabelClasses: {
asterisk: this.props.classes.labelAsterisk
}
}}
id="standard-name"
label="Name"
margin="normal"
helperText="Some important text"
/>
<InputLabel
FormLabelClasses={{
asterisk: this.props.classes.labelAsterisk
}}
required
shrink
htmlFor="age-native-simple"
>
Age
</InputLabel>
const styles = {
labelAsterisk: {
color: "red"
}
};
p>
Essayez ce simple et facile
render(){
const name = <p>Name<span style={{ color: "red" } >*</span></p>
const email = <p>Email<span style={{ color: "red" } >*</span></p>
.
.
.
return (
<div>
<TextField type="text" label={name} />//or Input tag
<TextField type="email" label={email} />//or Input tag
.
.
.
</div>
)
}