2017-12-01 17 views
0

ユーザーが要素をクリックして要素にクラスを追加すると、以下のコードが繰り返されます。コンポーネントの取得時にループの最初の要素をクリックしますクラスを追加するか、どちらかを追加します。最初の要素をクリックすると反応するjs

いずれか実行可能です。

私はあなたがこのようなため componentDidMountを使用することができると思う
Object.keys(this.state.cdata).map((id,val) => { 
    return (
     <div key={val} onClick={this.select.bind(this, this.state.cdata[id].id)} > 
      <div><i className="fa fa-globe" aria-hidden="true"></i> 
       <div className="country-name">{this.state.cdata[id].name}</div> 
       <input type="text" value={this.state.cdata[id].name} className="hidden" onChange={this.edit} onKeyPress={this.check}/> 
      </div> 
     </div> 
    ) 
}) 

答えて

1

componentDidMount() { 
    this.setState({ loaded: 'newClass' }); 
} 

し、あなたのコード内だけでエラー 警告なっインデックスに

Object.keys(this.state.cdata).map((id,val) => { 
    return (
     <div key={val} className={val === 0 && this.state.loaded} onClick={this.select.bind(this, this.state.cdata[id].id)} > 
      <div><i className="fa fa-globe" aria-hidden="true"></i> 
       <div className="country-name">{this.state.cdata[id].name}</div> 
       <input type="text" value={this.state.cdata[id].name} className="hidden" onChange={this.edit} onKeyPress={this.check}/> 
      </div> 
     </div> 
    ) 
}) 
+0

をチェックすることにより、クラスを追加:受信 '偽'ブール値でない属性' className'に対して ' – nirmal

+0

'className = {val === 0 && this.state.loaded}を' className = {val === 0 && this.state.loaded ||に置き換えることができます。 ''} '' –

関連する問題