7

eslintからprefer-templateエラーが発生しました。しかしES6でテンプレート文字列をネストする方法は?

{ 
    background: `url(${require(`../../assets/${edge.node.name.toLowerCase()}.png` center no-repeat`)}) 
} 

、明らかに、エラーが発生しました:この問題を回避するために、私は次のようurl関数の内部にネストされrequire関数内でテンプレート文字列を使用するように私のコードを変更しました。前に使用していたコードは、テンプレート文字列の代わりにrequire関数内を連結するプラス記号です。

{ 
    background: `url(${require('../../assets/' + edge.node.name.toLowerCase() + '.png')}) center no-repeat` 
} 

ネストされたテンプレート文字列を定義することは可能でしょうか?

答えて

12

はい、それは可能ですが、あなたは間違った場所に(つまりrequire呼び出し、補間値、およびCSS urlクローズ))})部分を入れて、いくつかの理由のために持っていた:言っ

{ 
    background: `url(${require(`../../assets/${edge.node.name.toLowerCase()}.png`)}) center no-repeat` 
//                    ^^^ 
} 

を、おそらくコードを読みやすくするわけではないので、おそらく悪い考えです。変数をよく使う:

const bgurl = require(`../../assets/${edge.node.name.toLowerCase()}.png`); 
… { 
    background: `url(${bgurl}) center no-repeat` 
} 
+0

お返事ありがとうございます。それは私のデモの間違いでした。しかし、私はそれを 'url($ {require {' ../../ assets/$ {edge.node.name.toLowerCase()} .png'))に変更したときにcenter no-repeat'構文エラーです。 – lvarayut

+0

@LVarayut:[Worksforme](http://babeljs.io/repl/#?evaluate=true&presets=es2015&code=const%20x%20%3D%20 {%0A%20%20background%3A%20%60url%28 %24 {要求%28%60 ..%2F ..%2Fassets%2F%24 {edge.node.name.toLowerCase%28%29} .png%60%29}%29%20center%20no-repeat%60 %0A}%3B)。正確にどのようなエラーが表示されますか? – Bergi

+0

ありがとう@Bergi。中括弧についての私の混乱でしたか?ところで、私はあなたの2番目のアプローチに行きます。 – lvarayut

関連する問題