2017-09-30 3 views
0

各カードの中に選択リストを持つマテリアルUIカードのリストがあります。 MenuItemを選択する際どのカードまたはSelectFieldが変更されているかを確認する方法

const ads = this.props.ads; 
    let adsItems = ads.map((c, i) => 
    <div key={ads[i].adid}> 
     <Card> 
     <CardHeade> 
      <SelectField 
      id={String(ads[i].adid)} 
      value={ads[i].status} 
      onChange={this.handleChange}> 
       <MenuItem key={1} value={`Idle`} primaryText={`Idle`} /> 
       <MenuItem key={2} value={`Sent`} primaryText {`Sent`} /> 
      </SelectField> 
     </CardHeader> 
     </Card> 
    </div> 
); 

は今、私はCardまたはselectFieldが変更されたかを知りたいです。 idをonChange={this.handleChange}に入力すると、IDはads[i].adidとなり、簡単に解決できます。

マテリアルUIのドキュメントを見てみましたが、その1つを選択するとその例も表示されます。MenuItemすべてのSelectFieldが同じ値で更新されます。

CardまたはSelectFieldが変更されていることがわかりましたか?それは私に大きな助けになります。

ありがとうございます。

答えて

2

あなたが言ったように、単にidを変更するだけで済みます。

onChange={(event) => this.handleChange(event, ads[i].adid)} 

以下のようにすると、小道具として渡すのではなく実行しているため、このようにしても機能しません。

// THIS WON'T WORK 
onChange={this.handleChange(ads[i].adid)} 
+0

あなたは天才です!ありがとう、シンプルで明確な説明をありがとう。 – Matt

関連する問題