Реакция Как условно переопределить цвет ошибки TextField в Material-UI?

Марсель младший Самсон Морассе:

Я использую React Material-UIбиблиотеку и хочу условно переопределить цвет ошибки TextField.

Мне нужно изменить helperText, border, text и требуемый цвет маркера на желтый, когда ошибка имеет определенный тип. Что-то вроде того :

введите описание изображения здесь

В противном случае я хочу оставить цвет по умолчанию (красный) для всех остальных типов ошибок. Я пытался следовать тому же принципу, который использовался в этом коде и коробке, но я не мог охватить все компоненты, которые мне нужно было изменить, и мне приходилось использовать importantключевое слово почти каждый раз, чтобы увидеть разницу.

Мне удалось условно изменить цвет, helperTextвот так:

                        <TextField
                            label="Name"
                            className={formClasses.textField}
                            margin="normal"
                            variant="outlined"
                            required
                            error={!!errors}
                            helperText={errors && "Incorrect entry."}
                            FormHelperTextProps={{classes: {root: getColorType(AnErrorType)}}}
                        />

getColorTypeВозвращает объект CSS с набором цвета свойства к тому , которая соответствует данному типу ошибки. например:

hardRequiredHintText: {
    color: `${theme.palette.warning.light} !important`
},

Есть ли более простой способ переопределить цвет ошибки MUI и увидеть его во всех компонентах, которые его используют?

keikai:

Для каждого типа проверки, отображать свой цвет, мы можем передать параметрыmakeStyles

import { makeStyles } from "@material-ui/core/styles";
const useStyles = params =>
  makeStyles(theme => ({
    root: {
    }
  }));
const Component = () => {
  const classes = useStyles(someParams)();

введите описание изображения здесь


Полный код:

import React from "react";
import "./styles.css";
import { TextField } from "@material-ui/core";
import { makeStyles } from "@material-ui/core/styles";
const useStyles = value =>
  makeStyles(theme => ({
    root: {
      "& .Mui-error": {
        color: acquireValidationColor(value)
      },
      "& .MuiFormHelperText-root": {
        color: acquireValidationColor(value)
      }
    }
  }));

const acquireValidationColor = message => {
  switch (message) {
    case "Incorrect entry":
      return "green";
    case "Please input":
      return "orange";
    default:
      return "black";
  }
};

const ValidationTextField = ({ helperText }) => {
  const classes = useStyles(helperText)();
  return (
    <TextField
      label="Name"
      margin="normal"
      variant="outlined"
      required
      error={helperText !== ""}
      helperText={helperText}
      className={classes.root}
    />
  );
};

export default function App() {
  const data = ["Incorrect entry", "Please input", ""];
  return (
    <div className="App">
      {data.map((x, idx) => (
        <ValidationTextField helperText={x} key={idx} />
      ))}
    </div>
  );
}

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

Как изменить цвет границы Material-UI <TextField />

Как использовать свойства Material-ui @ next TextField для ошибок

Автофокус TextField с использованием React Material-UI

Как переопределить стили для компонента TextField material-ui без использования MUIThemeProvider?

Как ограничить возможные вводы поля String в компоненте TextField Material-UI?

Можно ли изменить цвет шрифта TextField в material-ui-next?

Как удалить изогнутую границу и тень вставки из компонента Material UI TextField React?

Material-UI - TextField - программный выбор текста

Изменение размера Material-UI <TextField> заставляет курсор выходить из своего контейнера

Material-UI: как применять атрибуты ввода с помощью TextField

Реагировать: как получить значения из компонентов TextField Material-UI

Reactjs material-ui TextField изменяет цвет метки и подчеркивает ввод поля активности

Material-UI: изменение цвета фона автозаполнения в TextField

Автозаполнение Material-UI и TextField запускают автозаполнение Google

Material-ui - TextField - Невозможно изменить цвет ошибки вспомогательного текста

Material-ui - TextField - Невозможно изменить цвет ошибки вспомогательного текста

Программно установить значение в Material-ui Autocomplete TextField

Пользовательский требуемый текст Material-UI в TextField

Как изменить цвет метки Material-UI <TextField />

Как использовать Material-ui TextField с вводом-кода-телефона

Автозаполнение Material-UI не работает при настройке TextField InputProps

Как сфокусироваться на Material UI TextField с помощью хуков useRef при нажатии кнопки?

Как добавить className к дочернему элементу с помощью Material UI TextField

material-ui TextField Input не работает, когда ящик открыт

Почему фон AccordionSummary меняется на серый при нажатии внутри TextField в Material-UI?

React Material UI TextField FormHelperTextProps Стиль не работает

Распечатайте значение в React из TextField material-ui

Material-UI TextField теряет фокус на каждом onChange

React Material UI Textfield onChange

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    How to click an array of links in puppeteer?

  3. 3

    (fields.E300) Поле определяет связь с моделью, которая либо не установлена, либо является абстрактной.

  4. 4

    Modbus Python Schneider PM5300

  5. 5

    Elasticsearch - Нечеткий поиск не дает предложения

  6. 6

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  7. 7

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  8. 8

    Перебирайте несколько столбцов в фрейме данных Panda и находите уникальные значения подсчета

  9. 9

    Проблемы со сборкой Python Image Registration Toolkit

  10. 10

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  11. 11

    Vue js CLI 2 импортирует и использует плагин javascript

  12. 12

    Автозаполнение с Java, Redis, Elastic Search, Монго

  13. 13

    Текущая ветка не настроена для извлечения В конфигурации не найдено значение для ключа branch.master.merge

  14. 14

    SQL Вычтите две строки друг от друга в одном столбце, чтобы получить результат

  15. 15

    How to normalize different curves drawn with geom = "step" when using stat_summary

  16. 16

    Merging legends in plotly subplot

  17. 17

    ViewPager2 мигает / перезагружается при смахивании

  18. 18

    Vue 2 / Vue CLI 3: создание асинхронных однофайловых компонентов

  19. 19

    как я могу удалить vue cli 2?

  20. 20

    Ошибка «LINK: фатальная ошибка LNK1123: сбой при преобразовании в COFF: файл недействителен или поврежден» после установки Visual Studio 2012 Release Preview

  21. 21

    Single legend for Plotly subplot for line plots created from two data frames in R

популярныйтег

файл