2015-10-15 51 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方法移到那里。

相关问题