我正在编辑包含一些信息的项目,一旦项目被编辑,我需要通过post
请求将新信息发送到数据库。
我正在处理的对象命名为dealer
,那个经销商有一个id
,请看代码
if (this.props.dealerData) {
let dealerProps = this.props.dealerData.dealersData;
dealerInfo = dealerProps.map((dealer) => {
return (<div>
<Card>
<CardHeader title={dealer.NickName}
subtitle={dealer.DealerId} //DEALER ID HERE
avatar={dealer.DealerName}/>
<Button onClick={this._updateDealer} />
</Card>
</div>
);
})
}
这就是我使用此功能发送到数据库的数据
_updateDealer = () => {
UpdateDealerActions.updateDealer({
DealerId : // HERE I NEED TO SEND THE DEALER ID,
DealerName : this.refs.DealerNameEdit.getValue(),
NickName : this.refs.NickNameEdit.getValue(),
});
}
让我解释一下:您在这里用
dealerInfo
渲染的项目集合,大约有30个项目/经销商。 DealerId
是不可编辑的,它只是您需要发送到数据库以便知道您正在编辑的经销商的内容。因此,在我的函数
_updateDealer()
中,哪种方法是捕获DealerId的最佳方法?编辑
这是我用
refs
编辑的代码的一部分<Checkbox value="Active" ref="Active" defaultChecked={true}/>
<TextField ref="DealerNameEdit" value={this.state.toEdit.DealerName} onChange={this._handleUpdateChange.bind(this, 'DealerName')} />
<TextField ref="CardIdEdit" value={this.state.toEdit.CardId} onChange={this._handleUpdateChange.bind(this, 'CardId')} />
<TextField ref="NickNameEdit" value={this.state.toEdit.NickName} onChange={this._handleUpdateChange.bind(this, 'NickName')} />
<TextField ref="LegalIdEdit" value={this.state.toEdit.LegalId} onChange={this._handleUpdateChange.bind(this, 'LegalId')} />
<TextField ref="TypeIdEdit" value={this.state.toEdit.TypeId} onChange={this._handleUpdateChange.bind(this, 'TypeId')} />
最佳答案
您可以将ID绑定到点击处理程序。
<Button onClick={this._updateDealer.bind(this, dealer.DealerId)} />
然后在您的处理程序中
_updateDealer = (DealerId) => {
UpdateDealerActions.updateDealer({
DealerId : DealerId,
DealerName : this.refs.DealerNameEdit.getValue(),
NickName : this.refs.NickNameEdit.getValue(),
});
}
另一个解决方案应该是:
<TextField ref="DealerIdEdit" value={this.state.toEdit.DealerId} />
并在
_updateDealer()
DealerId : this.refs.DealerIdEdit.getValue()