私は:itemNameをとり、イメージを含むhtmlバンドルを吐き出すコンポーネントを持っています。イメージはバンドルごとに異なります。ここでSVGイメージのフォルダ全体(またはそれらを動的にロードする方法)をReact Web Appにインポートするにはどうすればいいですか?
は、私が持っているものです。
import React, { Component } from 'react';
import { NavLink } from 'react-router-dom';
import SVGInline from "react-svg-inline";
export default (props) => (
<NavLink className="hex" activeClassName="active" to={'/hex/' + props.itemName}> {React.createElement(SVGInline, {svg: props.itemName})} </NavLink>
)
は、どのように私は、このコンポーネントの作品を作ることができますか?
は私が
import SVGInline from "react-svg-inline";
import SASSSVG from "./images/sass.svg";
<NavLink className="hex" activeClassName="active" to="/hex/sass"><SVGInline svg={ SASSSVG } /></NavLink>
これは働くだろう...私はちょうど明示的にすべての私のイメージをインポートした場合、私はちょうどそのように私の画像を呼び出すことができることを知っているが、私は〜60 svgsを含める必要があるため、それが追加されますたくさんの余分なコード。
はまた、私は
import * as IconID from './icons';
... in this questionこのコードを発見したしかし、それは(それが問題ではなく、答えの一部であった)動作するようには思えない、と答えは少しも非特異的でした私が求めている質問に答える。
私はまたthis questionを見つけましたが、回答よりも多くの質問を持っている回答があります(承認されていませんが)。だから、反応-SVGをインストールした後、私は、ページを見つけることができません求めていただけでその質問のOPとして、答えはそうのように動作するかどうかを確認するためのテスト...
import React, { Component } from 'react';
import ReactDOM from 'react-dom'
import { NavLink } from 'react-router-dom';
import ReactSVG from 'react-svg'
export default (props) => (
<NavLink className="hex" activeClassName="active" to={'/hex/' + props.itemName}>
<ReactSVG
path={"images/" + props.itemName + ".svg"}
callback={svg => console.log(svg)}
className="example"
/>
</NavLink>
)
を設定するしかし、私の私の全体のイメージフォルダを私のビルドフォルダにコピーした後でさえ、svg。私はまた "./images/"を試しました
私はちょうど最後の重要な情報を欠いているように感じ、過去の日を検索した後、誰かが私が見逃している部分を特定できることを望んでいました。
私は実際にインポートされたSVGを変数に割り当てるために小さな編集を行い、使用できるようにしました。 :) – skylize
こんにちは、skylize、よく見えますが、私は興味があります、どのように変数svgs内の特定のイメージをターゲットにしますか? – WiseOlMan
@WiseOlMan偉大な疑問、驚くほど複雑なことです。私は適切な治療を与えるために私の答えを更新しました。 – skylize