2017-09-30 63 views
0

我有一張材料用戶界面卡列表,每張卡內有一個選擇列表。如何判斷哪個卡或選擇字段正在更改

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

現在選擇MenuItem時,我想知道哪些CardselectField改變。如果我可以簡單地將SelectField id傳入onChange={this.handleChange},在這種情況下,id是ads[i].adid,這可以簡單地解決。

我看了一下Material UI文檔,甚至當他們選擇了一個MenuItem時,他們的例子顯示了所有的SelectFields都使用相同的值進行更新。

有沒有什麼辦法可以知道哪個CardSelectField正在改變,這對我很有幫助。

謝謝

回答

2

你可以簡單地通過id來改變你喜歡的事件。

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

,如果你不喜歡,因爲下面你將執行它,而不是把它當作一種道具將無法正常工作。

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

你是個天才!非常感謝,簡單明瞭的解釋。 – Matt

相關問題