オブジェクトリテラル内に文字列を追加することはできますか?オブジェクトの中に文字列を追加する方法リテラル
height: 'calc(100% - ' + String(this.padding) + 'px * 2)'
とすると、Chromeから次のエラーメッセージが表示されます。
[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'
}
}
私は機能としてそれを作る場合は、エラーメッセージは表示されませんが、CSSは動作していないようです。これは、インラインスタイルのシステムでは、それを関数ではなく変数として呼び出すためです。
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'
}
}
高さは'calc(100% - 10px * 2)'
であることを作るための最善の方法は何ですか?
、あなたが作成されていませんここにインスタンスがあります。だから 'これは何も持たない。 –
@SpencerWieczorek - 彼は*( 'Object'の)インスタンスを作成しています。 @CasperLi - ここにJSONはありません。JSONはデータ交換用の文字列形式です。 – nnnnnn
@nnnnnn定義する前にインスタンスを作成することはできません。プロパティが定義されているとき、項目は 'root'の内部に作成されません。それは後で、「ここで」私は彼らがどこに 'this'を使用しようとしているのか、私はそれについてはっきりしていないかもしれないことを意味します。 –