我正在开发一款应用程序,该应用程序允许用户根据其条目计算有关交易的信息。我一直在根据页面已经检索到任何现有条目后添加的条目来正确计算交易金额。
<td scope="col">${sumTotal('amount')}</td>
<script>
...
mounted() {
this.trade_id = window.location.pathname.split("/")[3];
// Get entries of trade
axios
.get('/trade/' + window.location.pathname.split("/")[3] + '/entries/')
.then(response => (this.entries = response.data));
},
...
methods: {
sumTotal(base) {
return Math.round(this.entries.reduce((sum, cur) => sum + cur[base], 0));
}
</script>
当页面首次加载并提取现有条目时,第一个计算(第一列)是正确的,为 16。但是,当我添加新条目时,自动计算的值不再为 true。
第一列应该是 26,但现在是 1610
<小时/>我可以根据需要添加更多信息。我不确定需要多少资金,而且我不想让问题变得困惑。
最佳答案
这发生在 JS 端,
这是因为您要将数字值与字符串值相加,结果将是两个值连接在一个新字符串中。
如果你注意到了
之前的总和为 16
,新值为 10
它们的串联将为 1610
解决方案就像将新值从字符串转换为数值一样简单
您应该将 sumTotal
中的行更改为:
return Math.round(this.entries.reduce((sum, cur) => sum + parseInt(cur[base]), 0));
关于Javascript 和动态 Django Rest 框架条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59731916/