В Material UI значок не работает должным образом

Я использую Material UI. В документе показано, что я могу использовать:

 import Icon from "@material-ui/core/Icon";
   ...
  <Button variant = "contained" color = "primary" className = {classes.button}>
     blabla
      <Icon className = {classes.rightIcon}>send</Icon>
  </Button>

но то, что он показывает, - это кнопка с текстом «BLABLA SE», что неверно.

Но когда я использую:

import SendIcon from "@material-ui/icons/Send";
....
    <Button variant = "contained" color = "primary" className = {classes.button}>
     Blabla
     <SendIcon className = {classes.rightIcon} />
    </Button>

Он работает нормально, с текстом BLABLA и значком отправки слева от него.

В песочнице, представленной в документе, работают оба. Итак, почему в первом случае нет работать на меня?

У вас есть такая же версия библиотеки в вашей среде, что и в песочнице?

Tholle 02.11.2018 23:13

@Tholle у меня последняя версия 3.3.2, и в песочнице написано: "@ material-ui / core": "latest" `

farm command 03.11.2018 00:02
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
2
8 760
2

Ответы 2

Я думаю, что в этом примере документации есть ошибка: https://material-ui.com/demos/buttons/#buttons-with-icons-and-label

import Icon from '@material-ui/core/Icon';

должно быть

import SendIcon from '@material-ui/icons/Send';

Вот рабочая версия с этой заменой: https://codesandbox.io/s/k3rjyoq32v


Модуль, импортированный по этому пути @material-ui/core/Icon, сам по себе не является значком svg, это компонент Icon, описанный здесь: https://material-ui.com/api/icon/

В основном это три способа работы с иконками в material-ui:

  1. @material-ui/core/Icon: компонент, полезный для отображения значков шрифтов. См. https://material-ui.com/style/icons/#font-icons

  2. @material-ui/icons: пакет с набором Значки материалов, преобразованный в значки SVG, которые можно использовать в качестве компонентов React. См. https://material-ui.com/style/icons/#svg-material-icons

  3. @material-ui/core/SvgIcon: компонент для использования любого SVG в качестве значка. См. https://material-ui.com/style/icons/#svg-icons

спасибо, но мой вопрос в том, почему точный код, который работает в песочнице, не работает в моем проекте?

farm command 03.11.2018 18:02

Не могли бы вы дать ссылку на песочницу, о которой вы говорите?

Ricovitch 03.11.2018 21:43

вот и вы, codeandbox.io/s/mzlo9lnqp9, я говорю о кнопке Send

farm command 04.11.2018 00:12

Эта песочница не работает на моей стороне. Я не вижу значок «Отправить». И вы тоже ;-) codeandbox.io/s/k3rjyoq32v рабочая версия с модификацией, описанной в моем ответе. (Не используйте компонент "Значок" и вместо этого импортируйте значок "Отправить материал")

Ricovitch 04.11.2018 12:22

Я думаю, что вы решили свою проблему, так как я видел, что у вас есть значок, который отображается в вашем кодовом окне.

Была та же проблема, и я обнаружил, что я не импортировал семейство шрифтов значков материалов в index.html.

<link rel = "stylesheet" href = "https://fonts.googleapis.com/icon?family=Material+Icons">

Только с указанным выше импортом компонент будет работать.

Та же проблема, и в документы говорится, что это необходимо

Taku 21.06.2019 18:00

Другие вопросы по теме