Текстовое поле пользовательского интерфейса материала, формат обязательных полей

#javascript #reactjs #material-ui #textfield #react-hook-form

#язык JavaScript #реагирует на #материал-пользовательский интерфейс #текстовое поле #реакция-крючок-форма

Вопрос:

Я хочу изменить цвет подчеркивания границ текстовых полей, которые являются обязательными в форме (react-крючки-форма).

Я предполагаю, что мне нужно создать стиль для них, но вот где я застрял…

Это мой код:

поле:

 lt;Controller  name="date"  control={control}  defaultValue={props.operation === 'edit' ? props.values.date : null}  render={({ field: { onChange, value }, fieldState: { error } }) =gt; (  lt;TextField  id="date"  type="date"  label="date"    value={value}  className={classes.textField}  onChange={(event) =gt; {  onChange(event.target.value);  setValue('week', getWeek(event.target.value))  }}  error={!!error}  helperText={error ? error.message : null}  InputLabelProps={{  shrink: true,  }}  ///added  InputProps={{  className: classes.mandatory,  }}  /gt;  )}  rules={{ required: 'Date is required' }}  /gt;   

стили:

 const useStyles = makeStyles((theme: Theme) =gt;  createStyles({  root: {  'amp; .MuiTextField-root': {  margin: theme.spacing(2),  width: '26ch',  },  },  ///added  mandatory: {  borderBottom: '1px solid rgb(215 50 50 / 70%)'  }  }), );  

Я пытался добавить цвет границы, но это не работает.

Единственное решение, которое я нашел до сих пор, — это сфокусировать файл…

ОБНОВЛЕНИЕ №2: возможное решение добавить стиль в текстовое поле:

 lt;TextField  {...params }  error={!!error}  helperText={error ? error.message : null}  label="appel*"  className={`mandatory ${classes.textField}`}  style={{ borderBottom: '1px solid red' }}  /gt;  

Ответ №1:

если вы просто хотите изменить границу-цвет текстовой границы :

 "amp; .css-h5voop-MuiInputBase-root-MuiInput-root:before": {  borderBottom:" 1px solid rgb(215 50 50 / 70%)",  },  

или в текстовом поле :

 lt;TextField variant="standard" required label="Ship Name" name="name"    InputProps={{  disableUnderline:true,  sx:{  borderBottom:"2px solid green",  }  }}  /gt;  

Ответ №2:

Не могли бы вы попробовать, пожалуйста

 lt;Controller  name="date"  control={control}  defaultValue={props.operation === 'edit' ? props.values.date : null}  render={({ field: { onChange, value }, fieldState: { error } }) =gt; (  lt;TextField  id="date"  type="date"  label="date"    value={value}  className={`mandatory ${classes.textField}`}  onChange={(event) =gt; {  onChange(event.target.value);  setValue('week', getWeek(event.target.value))  }}  error={!!error}  helperText={error ? error.message : null}  InputLabelProps={{  shrink: true,  }}  /gt;  )}  rules={{ required: 'Date is required' }}  /gt;  

затем добавьте стиль

 .mandatory fieldset[aria-hidden="true"] {  borderBottom: '1px solid rgb(215 50 50 / 70%)'  }  

Комментарии:

1. Я не уверен, куда добавить стили? borderBottom не является свойством css, поэтому я думаю, что мне следует добавить его в стили создания, но синтаксис не работает…

2. Вы можете добавить его в обычный css или scss. Например, если вы импортируете какие-либо css/scss в app.js

3. это не работает…

4. правильно ли импортирован ваш css-файл. значит, проверьте любой другой стиль. например, цвет тела, для целей тестирования.