reactjs 为什么ReactHeroIcons不采取颜色?

pkmbmrz7  于 2023-05-06  发布在  React
关注(0)|答案(2)|浏览(93)

我试图在react项目中使用heroicons的英雄图标。

import React, { useState } from 'react';
import { MenuIcon, XIcon } from '@heroicons/react/solid';
export const Sidebar = () => {
  const [showSidebar, setShowSidebar] = useState<boolean>(false);
  return (
    <div
      className="flex justify-between items-center 
        p-2 
        m-auto"
    >
      {showSidebar ? (
        <div>
          <XIcon
            onClick={() => setShowSidebar(!showSidebar)}
            className="h-5 w-5 text-white cursor-pointer"
          />
        </div>
      ) : (
        <div>
          <MenuIcon onClick={() => setShowSidebar(!showSidebar)} className="h-5 w-5 text-white" />
        </div>
      )}
      <div
        className={`top-0 left-0 w-[45vw] bg-menubar  p-10 pl-20 text-white fixed h-full z-40 ${
          showSidebar ? 'translate-x-0 ' : 'translate-y-full'
        }`}
      >
        <h2 className="mt-5 text-2xl font-semibold text-white">I am a sidebar</h2>
      </div>
    </div>
  );
};

我有条件地显示一个侧边栏。XIcon是hwoing在我的dom.

但它没有任何颜色。

vu8f3i0k

vu8f3i0k1#

如何尝试使用fill-white而不是text-white,例如:

<XIcon
    onClick={() => setShowSidebar(!showSidebar)}
    className="h-5 w-5 fill-white cursor-pointer"
 />
deyfvvtc

deyfvvtc2#

这感觉有点古怪,但你可以使用fill属性来修改path元素的颜色:

样式.css:

.black-icon * {
  fill: black;
}

.white-icon * {
  fill: white;
}

Sidebar.tsx:

<div>
      <MenuIcon onClick={() => setShowSidebar(!showSidebar)} 
      className="h-5 w-5 white-icon" />
    </div>

相关问题