2017-07-26 10 views
1

ReactJSが新しくなりました。私はそれをクリックするとボタンのテキストと色を同時に変更しようとしていました。このコードは動作します:ReactJSのインラインスタイル

私は次のようなインラインスタイルをしようとすると、コードが機能しなくなります。

<button style={background:yellow} onClick={this.handleClick}> 
    {this.state.isHelpOn ? 'HELP ON' : 'HELP OFF'} 
</button> 

私はさまざまな方法で何度も試してみました。私はそれが現時点でインラインスタイルであることを望みます。 Reactからインラインスタイルを直接適用することは可能ですか?はいの場合は、状態を評価し、条件文を介して別の色を設定します。

+2

書き込み、それを: 'スタイル= {{backgroundColorの '黄色'}}' –

+0

@MayankShuklaまだ不足している引用符 –

+0

@MayankShuklaない...本当に... –

答えて

6

は、オブジェクトとして、あなたのインラインスタイルを宣言します。

<button style={{ background: 'yellow' }} onClick={this.handleClick}> 
    {this.state.isHelpOn ? 'HELP ON' : 'HELP OFF'} 
</button> 
4

あなたはブラケットと、いくつかの引用符のセットが不足している:

<button style={{background: 'yellow'}} onClick={this.handleClick}> 
    {this.state.isHelpOn ? 'HELP ON' : 'HELP OFF'} 
</button> 

のリアクトスタイルの小道具は、オブジェクト({background: 'yellow'})を見込んで、それはだから単純な文字列ではなく、小道具の周りに余分な括弧が必要です{{...}}

3

あなたは別の{}でそれをラップする必要があります。

<button style={{background:'yellow'}} onClick={this.handleClick}> 
    {this.state.isHelpOn ? 'HELP ON' : 'HELP OFF'} 
</button> 

{} Sの外側セットはまさに内部ではJavaScriptコードであるJSXコンパイラに指示します。内部セット{}は、JavaScriptオブジェクトリテラルを作成します。

2

まず、オブジェクトとして渡される必要があります。

第2の - cssの値は、の文字列である必要があります。このような

style={{ background: 'yellow' }} 
関連する問題