2017-09-30 3 views
0

J'ai une liste de cartes d'interface utilisateur avec une liste de sélection dans chaque carte.Comment indiquer quelle carte ou SelectField est en cours de modification

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> 
); 

Maintenant, lorsque vous choisissez un MenuItem Je veux savoir qui Card ou selectField a été changé. Si je pouvais simplement passer le SelectField id dans le onChange={this.handleChange} dans ce cas, l'ID est ads[i].adid cela serait résolu simplement.

J'ai regardé les documents de l'interface utilisateur Material et même leurs exemples montrent que lorsque vous sélectionnez un MenuItem, tous les champs SelectField sont mis à jour avec la même valeur.

Y at-il un moyen que je puisse savoir quel Card ou SelectField est en cours de modification, cela m'aiderait grandement.

Merci

Répondre

2

Vous pouvez simplement passer simplement l'id changer événement comme vous avez dit. Si vous aimez comme ci-dessous, cela ne fonctionnera pas parce que vous l'exécuteriez plutôt que de le passer comme accessoire.

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

Vous êtes un génie! Merci beaucoup, explication simple et claire. – Matt