前提・実現したいこと
npx create-react-app sample --typescript
にて、TypeScript + Reactの環境を構築。
Cardコンポーネントを作成して、画像を読み込ませようとしたところエラーとなる。
bootstrap-react
も使用していますが、特段こだわった作りにはしていません。
発生している問題・エラーメッセージ
Error: Cannot find module '../../images/characters/test.jpg'
該当のソースコード
tsx
1import React, { FC } from 'react'; 2import { Card, Button } from 'react-bootstrap' 3import './index.css' 4 5export interface ICard { 6 id : number, 7 imgSrc : string, 8 characterName : string, 9 cardText : string, 10} 11 12/** 13 * 14 * @param id 15 * @param imgSrc 16 * @param characterName 17 * @param cardText 18 */ 19const card: FC<ICard> = ({ id, imgSrc, characterName, cardText}) => { 20 console.log(imgSrc); 21 // const a = require('../../images/test.jpg'); この記述にすると通る 22 const a = require(imgSrc); // imgSrcが'../../images/test.jpg'であるにも関わらずrequireできない 23 return <Card style={{ width: '15rem', margin: '1rem 1rem' }}> 24 <Card.Img variant="top" src={a} /> 25 <Card.Body> 26 <Card.Title>{ characterName }</Card.Title> 27 <Card.Text> 28 { cardText } 29 </Card.Text> 30 <Button variant="primary">Go somewhere</Button> 31 </Card.Body> 32 </Card> 33}; 34 35export default card; 36
試したこと
たとえば
tsx
1const path = '../../images/test.jpg'; 2const a = require(path);
とすると、上記と同様のエラーメッセージが返されます。
require
には変数を引数として渡すことはできないのでしょうか。
以上、よろしくおねがいします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/28 09:43
2019/08/28 10:16
2019/08/28 10:51