2015-10-15 50 views
3

我有一張關於經銷商的一些信息卡的列表,我需要設置一個功能來編輯該信息。所以,我有一張信息卡,如:dealerNamecardId,如果你點擊那張卡片,一個模式應該打開,其中的人員信息完全相同,但你可以編輯該信息。如何獲取元素的值以便將它們打印到新元素中?

export default class DealerChild extends Component { 

    constructor (props) { 
    super(props); 
    } 

    render() { 
    let dealerInfo; 
    if (this.props.dealerData) { 
     let dealerProps = this.props.dealerData.dealersData; 
     dealerInfo = dealerProps.map((dealer) => { 
     return (<div> 
       <Card> 
       // THIS IS THE CARD. 
       // THIS IS THE INFO THAT CONTAINS THE CURRENT DEALER 
       <CardHeader title={dealer.DealerName} 
          subtitle={dealer.CardId} /> 
       </Card> 

       // THIS BUTTON OPENS THE MODAL 
       <Button onClick={() => this._openUpdateDealer(dealer)}> 

      // THIS IS THE MODAL 

       <Dialog 
       title="Update Dealer" 
       ref="updateRef"> 
       <div> 

      // THESE ARE THE FIELDS TO FILL WITH THE CURRENT INFO OF THE DEALER 
       <TextField ref="DealerNamePopup" /> 
       <TextField ref="CardIdPopup" /> 
       </div> 
       </Dialog> 
      </div> 
     ); 
     }) 
    } 

    return (<Grid> {dealerInfo} </Grid>); 
    } 

    _openUpdateDealer = (dealer) => { 
    console.log(dealer); // RETURNS THE INFO OF THE CURRENT DEALER 
    this.refs.updateRef.show(); // THIS OPENS THE MODAL 
    console.log(this.refs.DealerNamePopup); // RETURNS UNDEFINED 
    } 
} 

console.log(dealer);返回一個JSON與目前的經銷商的信息:

{ 
    DealerName: "Carmen", 
    CardId: "23132123" 
} 

請,看看代碼中的註釋可以讓你瞭解一步步它做什麼。

那麼,怎樣才能打印當前經銷商在模態字段中的信息呢?這是卡上的完全相同的信息。

編輯

Here the library I am using, material-ui

回答

0

你這樣做是有點不對勁,我相信。您有一個集合,您可以將其轉換爲React組件的數組。並且您創建refs相對於該單個記錄的組件而不是整個DealerChild其中_openUpdateDealer方法是。因此,爲了獲得訪問這些裁判你可以這樣做:

dealerInfo[0].refs.DealerNamePopup 

你要麼需要在創建反應成分的數組中添加索引變量,並把它傳遞給你的_openUpdateDealer(index, dealer),然後做dealerInfo[index].refs.DealerNamePopup

或者只是爲這些記錄創建一個新的React類,並將_openUpdateDealer方法移到那裏。

相關問題