Одно из решений, о которых я заметил, не упоминается (если я не пропустил его, если бы я исправил меня), это использование переменной класса. В этой проблеме возникла попытка запустить новый поток внутри метода: 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();
}
}
Правила свойств, определенные в объекте стиля, не переопределяют правила, предусмотренные в теме по умолчанию, поскольку они имеют меньшую специфичность.
Например, цвет ошибки входной метки задается в селекторе CSS '.root.error'
, игнорируя префиксы компонентов, добавленные в имена селекторов.
Какие селекторы используются для нацеливания на элемент, можно узнать в разделе «Стили» консоли разработчика вашего браузера.
То же самое с цветом для состояния ошибки звездочки и вспомогательного текста формы.
Чтобы сгенерировать аналогичные селекторы, вам нужно написать объект стилей следующим образом:
const styles = {
root: {
'&$error': {
color: "green"
}
},
asterisk: {
'&$error': {
color: "green"
}
},
underline: {
'&$error:after': {
borderBottomColor: "green",
}
},
error: {
}
};
Здесь я заменил color
с red
на green
.
В переопределении 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
}
}}
//...
/>
)