Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Кнопка с иконками (https://javascript.ru/forum/library-toolkit-framework/79132-knopka-s-ikonkami.html)

yanVolskiy 22.12.2019 18:40

Кнопка с иконками
 
Всем привет, относительно недавно изучаю ДжаваСкрипт и сейчас выполняю тестовое задание используя React js. Столкнулся с проблемой передачи картинки по импорту в кнопку. Код выглядит так:

import arrowDown from '../../../media/icons/arrow-down.svg';
import arrowUp from '../../../media/icons/arrow-up.svg';


<Button className={classes.reportBtn} onClick={handleClick}>
<img className={classes.groupIcon} src={group} alt="group icon" />
{open ? 'Hide report' : 'Show report'}
</Button>


В задаче сказано, что есть кнопка, которая будет открывать список. На кнопке должна быть иконка "стрелка вверх" при закрытом списке и иконка "стрелка вниз" при закрытом списке.
Подскажите пожалуйста как это сделать, заранее благодарен

Malleys 23.12.2019 07:15

yanVolskiy, сначала импортируйте нужные компоненты...

import { ReactComponent as ArrowUp } from "../../../media/icons/arrow-up.svg";
import { ReactComponent as ArrowDown } from "../../../media/icons/arrow-down.svg";


...а затем используйте их в зависимости от значения open...
<Button className={classes.reportBtn} onClick={ handleClick }>
     { React.createElement(open ? ArrowUp : ArrowDown, { className: classes.groupIcon }) }
     { open ? 'Hide report' : 'Show report' }
</Button>

yanVolskiy 23.12.2019 13:16

Спасибо друг! Сделал немножко по другому, но ваш вариант очень помог

<Button className={classes.reportBtn} onClick={handleClick}>
{open ? 'Show report' : 'Hide report'}
{open ? (
<ArrowDown className={classes.arrowIcon} />
) : (
<ArrowUp className={classes.arrowIcon} />
)}
</Button>


Часовой пояс GMT +3, время: 03:46.