前提・実現したいこと
画像のパスを Props に渡して background-image として表示したい
発生している問題
画像が読み込めない
該当のソースコード
webpack5 の inline assets を使っています。
js
1module.exports = { 2 module: { 3 rules: [ 4 { 5 test: /.(ico|svg|jpg|png|webp)$/, 6 type: 'asset/inline' 7 } 8 ] 9 } 10};
該当するコンポーネントは以下の通りです。
typescript
1//<project-root>/src/components/Button/Button.tsx 2import styled from 'styled-components'; 3 4interface Props { 5 imgUrl?: string; 6} 7 8const Button = styled.button<Props>` 9 background-image: url(${(props) => props.imgUrl || ''}); 10 background-repeat: no-repeat; 11`;
コンポーネントを使う側は以下のようになっています。
また、画像そのもの(edit.svg)は、プロジェクトルート下のassets/images/に置いてあります。
typescript
1// Button.tsx と同じディレクトリに配置 2const Edit: React.VFC = () => ( 3 <Button imgUrl={'../../../assets/images/edit.svg'} /> 4);
何が問題であり、どのように解決できますでしょうか?
回答1件
あなたの回答
tips
プレビュー