我从REST服务中提取一些数据。数据保存在this.props.message
中。在this.props.message
中,我需要将offerRate
, prevRate
和rate
中的所有"。"替换为",",然后将数据保存回this.props.message
。this.props.message
稍后将在一个表(react-bootstrap-table)中输出。可以在表中编辑数据,在将其推回REST服务之前,我需要将","替换为"。"。
this.props.message
是这样的
[Object, Object, Object, Object, Object, Object]
0:Object
addedDate:"2013-08-22"
ccyCode:"CHF"
country:"SCHWIZER FRANC"
lastChangeDate:"2016-05-02"
offerRate:7.02
prevRate:8.501
prevRateDate:"2016-04-01"
rate:8.425
rateDate:"2016-05-01"
unit:1
__proto__:Object
1:Object
2:Object
3:Object
4:Object
5:Object
然后在表
中输出 this.props.message
。
render() {
return (
<div>
<BootstrapTable
data={this.props.message}
cellEdit={{
mode: "click",
blurToSave: true,
afterSaveCell: this.onAfterSaveCell
}}
>
<TableHeaderColumn dataField="rate" dataSort={true}>Kurs</TableHeaderColumn>
</BootstrapTable>
</div>
对于表中编辑的数据,我有一个名为onAfterSaveCell
的回调函数。在将数据推回REST服务之前,这里可能是用"。"替换","的好地方。
onAfterSaveCell(row, cellName, cellValue) {
this.props.updateData(row);
}
row
看起来像这样
Object {ccyCode: "CHF", country: "SCHWIZER FRANC", unit: 1, rateDate: "2016-05-01", rate: 8.425…}
addedDate:"2013-08-22"
ccyCode:"CHF"
country:"SCHWIZER FRANC"
lastChangeDate:"2016-05-02"
offerRate:"7.99"
prevRate:8.501
prevRateDate:"2016-04-01"
rate:8.425
rateDate:"2016-05-01"
unit:1
__proto__:Object
我还没有设法在React中找到一个替换函数。我还有什么别的办法吗?
有几件事让我偏离了轨道。this.props.message
是object
s的array
。所以首先我需要循环array
来获得object
,然后循环object
来达到我想要改变的角色。object
中的值不是string
s,所以我需要将它们转换为string
s,以便能够使用replace
。
replaceChar(from, to) {
for (var i in this.props.message)
{
for (var p in this.props.message[i]) {
if(this.props.message[i].hasOwnProperty(p)){
if(p == 'rate' || p == 'prevRate' || p == 'offerRate') {
this.props.message[i][p] = JSON.stringify(this.props.message[i][p]).replace(from,to);
}
}
}
}
}
我从render
方法中调用上面的