【发布时间】:2019-08-13 09:30:53
【问题描述】:
在此屏幕中,我正在使用复选框映射数组(“数组上方)值,有一些“data.TransactionAmount”我必须计算所有的总和并发送到下一个屏幕, 但是如果我取消选中任何列表金额应该减去。就像有 3 个值 - 1050+1050+1050 =3150,如果我取消选中单个值,那么它应该是 1050+1050-1050=2100 并且它应该在下面的按钮中更新。 如果我取消选中单个列表,则所有列表都将被取消选中。 在“总和”状态下,我得到的总和是默认值,并且值将出现在按钮中。但如果我取消选中任何列表,值应该减去。 请帮忙,谢谢, 下面的链接是我正在实施的参考。
// Below is the array value
financialTransactionDetail: Array(3)
0:
AdjustedAmount: "0"
NetTransactionAmount: "1050"
TransactionAmount: 1050
1:
AdjustedAmount: "0"
NetTransactionAmount: "1050"
TransactionAmount: 1050
2:
AdjustedAmount: "0"
NetTransactionAmount: "1050"
Status: "Unpaid"
TransactionAmount: 1050
this.state = {
title: 'Payments against invoice',
icon: 'sim',
mobile:navigation.state.params.customer.service.serviceNumber,
isChecked:true,
sum :financialTransactionDetail.financialTransactionDetail.reduce((a, c) => { return a + c.TransactionAmount}, 0),
transactionAmount :''
}
handleChange(key , value){
this.setState({
isChecked:!this.state.isChecked})
}
handleChangeSum = (sum) => {
this.setState({
sum: sum
});
}
{ !_.isEmpty(financialTransactionDetail.financialTransactionDetail) && financialTransactionDetail.financialTransactionDetail.map(
(data, index) => {
return(
<View key={index} style={{flexDirection:'row', padding:10, alignItems:'center', justifyContent:'space-between'}}>
<View style={{paddingRight:10, marginRight:10}}>
<CheckBox style={styles.checkBox} color="#00678f" checked={this.state.isChecked} onPress={() =>this.handleChange()}/>
</View>
<View style={{flexDirection:'column',flex:1, padding:10, borderWidth:1, borderColor:'lightgrey', borderRadius:10}}>
<View style={{flexDirection:'row', alignItems:'center'}}>
{!this.state.isChecked && <RegularText text={`₦ ${data.TransactionAmount}`} style={{paddingBottom:10, paddingRight:5}}/>}
<SmallText text="From 1-Jan-2019 to 31-Jan-2019" style={{paddingBottom:10}}/>
</View>
{this.state.isChecked &&
<RegularText text={`₦ ${data.TransactionAmount}`} style={{borderColor: '#00fff', borderBottomWidth:1}}>
</RegularText>
}
</View>
</View>
)
}
)
}
<View>
<Button full onPress={()=>navigation.navigate('PaymentOptionsContainer',sum)}>
<Text>Receive Payment ({sum})</Text>
</Button>
</View>
谢谢
【问题讨论】:
-
我看到还有更多答案,所以我把链接放在这里:stackblitz.com/edit/react-nyalzx
-
非常感谢.. 但是这个数组值会动态出现
-
没问题。在某些时候,它将处于组件的状态,因此它会像在 sn-p.. 中一样工作。
-
谢谢。让我也试试 :)
-
我稍微更新了 sn-p。也许现在更合适。
标签: javascript reactjs react-native ecmascript-6