Я использую React для создания приложения, и я хочу использовать значки FontAwesome для включения их в заполнитель ввода, чтобы он выглядел как
<input type = "text" placeholder = "[here should be the user icon] Username" />
Как я могу это сделать? Я использовал " Username", и он показывает только квадрат вместо значка. Может я что то забыл?
Я установил response-fontawesome. Может я неправильно объявил font-family: FontAwesome? Или мне следует импортировать шрифт awesome в свой scss?
Ага. Я поместил стили для :: placeholder. Но как мне импортировать сам font-awesome, чтобы использовать его в семействе шрифтов?
посмотрите stackoverflow.com/questions/19350291/…





Попробуйте включить свой значок как InputAddon, а не вставлять его в местозаполнитель. Вы можете сделать это несколькими способами. Я бы предложил два из перечисленных ниже.
Подход 1: Bootstrap
Вы можете установить начальную загрузку и использовать классы input-group-prepend или input-group-append и разместить там свой значок.
Пример:
import { FaUserAlt } from 'react-icons/fa';
render() {
return (
<div className = "input-group mb-3">
<div className = "input-group-prepend">
<i className = "classes you have"><FaUserAlt /></i>
</div>
<input type = "text" className = "form-control" placeholder = "Username" />
</div>
)
}
Для этого вам потребуется установить bootstrap и react-icons. Установка bootstrap позволит вам использовать эти classNames, а установка react-icons позволит вам использовать <FaUserAlt /> в качестве компонента, а не через CSS. Для установки bootstrap используйте: npm i bootstrap. Для установки react-icons используйте: npm i react-icons.
Подход 2: Reactstrap
Вы можете использовать reactstrap, который по сути является Bootstrap для реакции. Для этого вам потребуется установить reactstrap, react-icons и bootstrap, например: npm i reactstrap bootstrap react-icons.
Пример: Из документации reactstrap (с небольшими изменениями)
import React from 'react';
import { InputGroup, InputGroupText, InputGroupAddon, Input } from 'reactstrap';
import { FaUserAlt } from 'react-icons/fa';
const Example = (props) => {
return (
<div>
<InputGroup>
<Input placeholder = "Username" />
<InputGroupAddon addonType = "append">
<FaUserAlt />
</InputGroupAddon>
</InputGroup>
</div>
);
};
export default Example;
Альтернативный подход
Вы можете просто сделать это с помощью CSS. Я бы пошел по этому пути, если бы вы использовали этот «заполнитель значков» только один раз. Но, если вы постоянно делаете это во всем своем приложении, я думаю, что, возможно, стоит изучить два вышеупомянутых подхода.
Надеюсь, это поможет любому, кто сталкивается с этим.
Для всех, кто сталкивается с этой проблемой:
У меня сработало: Как включить значок Font Awesome в Render () React
Вместо пакета @ fortawesome / react-fontawesome я использовал пакет font-awesome.
npm install --save font-awesome
Теперь импортируйте font-awesome в свой файл index.js.
import '../node_modules/font-awesome/css/font-awesome.min.css';
или
import 'font-awesome/css/font-awesome.min.css';
Тогда рассматриваемый код выглядит так:
<input type = "text" placeholder = " Username" />
Просто скопируйте юникод нужного значка из https://fontawesome.com и замените им F007.
И введите тег ввода стиля следующим образом:
font-family: FontAwesome;
Вы установили fontawesome в качестве семейства шрифтов для ввода? Я никогда не использовал fontawesome в качестве заполнителя, но если вы видите квадрат вместо значка, это обычно означает, что вы не используете шрифт fontawesome, и в любом шрифте, который вы используете, нет этого символа. .