hrefファイルのURLを作成するために2つの文字列を連結しようとしています。文字列値の1つは、(document.jsonファイル内の)オブジェクトのDataDocuments配列から得られます。map()メソッドを使用して動的にhrefファイルのURLを作成する
documents.jsonファイル:
[
{ "year":"2017", "ref": "20170303", "file_name": "deed_20170303.pdf", "full_path": "../../../data/statements/deed_20170303.pdf" },
{ "year":"2016", "ref": "201604", "file_name": "deed_20160413.pdf", "full_path": "../../../data/statements/deed_20160413.pdf" }
]
私はhrefの構築に私の試みで、私のコードに次のようしている(試行#1 - FAILED):
のconst statementPath =」../。 ./../data/statements/ ";
import deed from "../../../data/statements/deed_20170303.pdf";
<Table>
{DataDocuments.map((item, index) => (
<tr key={item.type.concat(item.ref)}>
<td><a href={deed} download>{item.file_name}</a></td>
</tr>
))}
</Table>
私は、問題は、私は完全なパスを構築してどのように思った: - 私は単に私の内部depenedencies(WORKS試行#2)の下で定義された完全な文字列を持っているWHN
<Table>
{DataDocuments.map((item, index) => (
<tr key={item.type.concat(item.ref)}>
<td><a href={statementPath.concat(item.file_name)} download>{item.file_name}</a></td>
</tr>
))}
</Table>
次のコードでは、作業を行います文字列は、私はしても、データオブジェクトに「full_path」を追加してみました、それはまだ動作しません(試行#3は - FAILED):
試行#1と試行#3の場合<Table>
{DataDocuments.map((item, index) => (
<tr key={item.type.concat(item.ref)}>
<td><a href={item.full_path} download>{item.file_name}</a></td>
</tr>
))}
</Table>
、私はダウンロードを取得しますしかし、いつ「Adobe Readerは、サポートされているファイルタイプでないか、ファイルが破損しているため、「deed_20170303.pdf」を開くことができませんでした」と、Adobe Readerでファイルを開きます。
すべてのヘルプがわかります私はマップメソッド内でhrefを動的に構築できます。前もって感謝します。
あなたが何かにhrefがある場所からのインポートの値だと言うならば。ロケーションパスがhrefのために機能することは期待できません。意味..インポート後に 'console.log(deed)'を試してみて、その値が何であるかを見てください。私は 'full_path'とは違うと賭けました –
あなたは正しいです。私は...私はヶ月前に一緒に石畳を知っている\t \t \t { \t \t \t \tテスト私のwebpack.configをチェックする必要があり、以下の行為= [/のJS /画像/ Statement_20170303.pdf]を参照してください。/ \を( pdf | png | jpg | woff | woff2 | ttf | eot | svg)$ /、 \t \t \t \t [ファイルローダーの名前=画像/ [名前]。[ext] "] \t \t \t} –
あなたの答えは正しいと思います。何かのhrefを' '../../../ data/statements/deed_20170303.pdf" 'に設定しようとしていますあなたはそれがうまくいかないと言っています).... "/js/images/Statement_20170303.pdf"(これはあなたの作品と言います) –