簡體   English   中英

情感/風格 - Hover 在 SVG 組件上

[英]emotion/styled - Hover on an SVG component

我有一個組件,它是一個 SVG,其中只有一個路徑元素。 它被導入並呈現為:

<svg ... >
 <path>...</path>
</svg>

我正在嘗試用emotion/styled來設計它:

const StyledSvg = stlyled(SvgIcon)`
   &:hover {
     fill: <someColor>
   }
`;

它什么都不做。 試圖將 hover 強加給檢查員,但仍然一無所獲。 知道是否可能嗎?我該如何實現?

謝謝

編輯組件:

const Play: Icon = ({ style }) => {
  return (
      <svg xmlns="http://www.w3.org/2000/svg" width="30" height="20" viewBox="0 0 30 20">
        <path d="..."/>
      </svg>
  );
};

我不知道你的Icon類型是什么樣的,但我讓它像這樣工作:

type ComponentProps = {
  className?: string;
};

const Play: React.FC<ComponentProps> = ({ className }) => (
  <svg
    className={className}
    xmlns="http://www.w3.org/2000/svg"
    width="30"
    height="20"
    viewBox="0 0 30 20">
    <path d="M 10 10 H 90 V 90 H 10 L 10 10" /> // replace with your path
  </svg>
);

const StyledSvg = styled(Play)`
  &:hover {
    fill: blue;
  }
`;

function App() {
  return (
    <div className="App">
      <StyledSvg />
    </div>
  );
}

此解決方案需要設置className道具才能工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM