Kann ich einige Zeichenfolgen in einem Objektliteral hinzufügen?Möglichkeiten, String-Hinzufügung in Objekt-Literal zu tun
Chrome gibt mir die folgende Fehlermeldung, wenn ich height: 'calc(100% - ' + String(this.padding) + 'px * 2)'
mache.
[ProjectContainer.js:15] Uncaught TypeError: Cannot read property 'padding' of undefined
var styles = {
root: {
display: 'flex',
flexWrap: 'wrap',
textAlign: 'left',
padding: 10,
height: 'calc(100% - ' + String(this.padding) + 'px * 2)',
width: 'calc(100% - 10px * 2)',
overflowY: 'scroll'
}
}
Allerdings, wenn ich es als eine Funktion zu machen, wird keine Fehlermeldung angezeigt, aber die CSS-Arbeit scheint nicht. Dies kann der Fall sein, weil das Inline-Stil-System es nicht als eine Funktion sondern als Variable bezeichnet.
var styles = {
root: {
display: 'flex',
flexWrap: 'wrap',
textAlign: 'left',
padding: 10,
height: function() {return 'calc(100% - ' + String(this.padding) + 'px * 2)'},
width: 'calc(100% - 10px * 2)',
overflowY: 'scroll'
}
}
Was ist der beste Weg, um die Höhe zu machen 'calc(100% - 10px * 2)'
zu sein?
Sie müssen sie festlegen, nachdem Sie das Objekt definiert wird, sind Sie nicht ein zu schaffen Beispiel hier. Also '' '' wird nichts halten. –
@SpencerWieczorek - Er * erstellt * eine Instanz (von 'Object'). @CasperLi - hier gibt es kein JSON: JSON ist ein String-Format für den Datenaustausch. – nnnnnn
@nnnnnn Sie können keine Instanz von etwas erstellen, bevor Sie sie definieren. Das Element wird nicht innerhalb von "root" erstellt, wenn Eigenschaften definiert werden. Es ist nachher, mit "hier" meine ich, wo sie versuchen "dieses" zu verwenden, vielleicht war mir das nicht klar. –