Как изменить цвет метки в состоянии ошибки в реакции?

Одно из решений, о которых я заметил, не упоминается (если я не пропустил его, если бы я исправил меня), это использование переменной класса. В этой проблеме возникла попытка запустить новый поток внутри метода: new Thread(){ Do Something }.

Вызов doSomething() из следующего будет работать. Вам необязательно объявлять его final, просто нужно изменить область действия переменной, чтобы она не была собрана перед внутренним классом. Это, если, конечно, ваш процесс не огромен, и изменение сферы может создать какой-то конфликт. Я не хотел, чтобы моя переменная была окончательной, поскольку она не была окончательной / константой.

public class Test
{

    protected String var1;
    protected String var2;

    public void doSomething()
    {
        new Thread()
        {
            public void run()
            {
                System.out.println("In Thread variable 1: " + var1);
                System.out.println("In Thread variable 2: " + var2);
            }
        }.start();
    }

}
0
задан user944513 1 March 2019 в 07:08
поделиться

1 ответ

Правила свойств, определенные в объекте стиля, не переопределяют правила, предусмотренные в теме по умолчанию, поскольку они имеют меньшую специфичность.

Например, цвет ошибки входной метки задается в селекторе CSS '.root.error', игнорируя префиксы компонентов, добавленные в имена селекторов.

Какие селекторы используются для нацеливания на элемент, можно узнать в разделе «Стили» консоли разработчика вашего браузера.

CSS Property Inspector in Dev Console

То же самое с цветом для состояния ошибки звездочки и вспомогательного текста формы.

Чтобы сгенерировать аналогичные селекторы, вам нужно написать объект стилей следующим образом:

const styles = {
  root: {
    '&$error': {
      color: "green"
    }
  },
  asterisk: {
    '&$error': {
      color: "green"
    }
  },
  underline: {
    '&$error:after': {
      borderBottomColor: "green",
    }
  },
  error: {
  }
};

Здесь я заменил color с red на green.

Rendered UI change

В переопределении TextField InputProps.classes, FormHelperTextProps.classes и InputLabelProps.FormLabelClasses

const { classes } = this.props 
//...
return (
  <TextField
    //...
    InputProps={{
      classes: {
        root: classes.root,
        error: classes.error,
        underline: classes.underline
      }
    }}
    FormHelperTextProps={{
      classes: {
        root: classes.root,
        error: classes.error
      }
    }}
    InputLabelProps={{
      shrink: true,
      FormLabelClasses: {
        root: classes.root,
        asterisk: classes.asterisk,
        error: classes.error
      }
    }}
    //...
  />
)
0
ответ дан Oluwafemi Sule 1 March 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: