7

Ich habe einen prefer-template Fehler von eslint. Für die Problemumgehung, änderte ich meinen Code eine Vorlage Zeichenfolge innerhalb der require Funktion zu verwenden, die in der url Funktion wie folgt verschachtelt ist:Wie verschachtelt man Zeichenketten in ES6?

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

jedoch, die einen Fehler gab, offensichtlich. Hier ist der Code, den ich zuvor verwendet habe, ein Pluszeichen, das innerhalb der require-Funktion anstelle der Vorlagenzeichenfolge verkettet ist.

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

Wäre es möglich, verschachtelte Template-Strings zu definieren?

Antwort

12

Ja, es ist möglich, aber Sie aus irgendeinem Grund hatte gab )}) Teil (das schließt die require Aufruf, den interpolierten Wert, und die CSS url) an der falschen Stelle:

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

Das heißt, es ist wahrscheinlich eine schlechte Idee, da es den Code nicht gerade lesbar macht. Bessere Verwendung einer Variablen:

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

Vielen Dank für Ihre Antwort. Das war mein Fehler für die Demo. Allerdings, wenn ich es in 'url ($ {require (' ../../assets/ $ {edge.node.name.toLowerCase()}. Png')) änderte center no-repeat' Es ist ein Syntaxfehler. – lvarayut

+0

@LVarayut: [Worksforme] (http://babeljs.io/repl/#?evaluate=true&presets=es2015&code=const%20x%20%3D%20%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%, %%20% 20% 20background% 3A% 20% 60url% 28 % 24 {require% 28% 60 ..% 2F ..% 2Fassets% 2F% 24 {edge.node.name.toLowerCase% 28% 29} .png% 60% 29}% 29% 20center% 20ohne ​​Wiederholungen% 60 % 0A}% 3B). Welchen Fehler bekommst du genau? – Bergi

+0

Danke @Bergi. War meine Verwirrung über geschweifte Klammern? BTW, ich werde mit deinem zweiten Ansatz gehen. – lvarayut