Vuejs2 基于其他输入字段更新值
我创建了一个组件,用于创建带有发票项输入字段的动态行Vuejs2 基于其他输入字段更新值,vuejs2,vue-component,vuex,Vuejs2,Vue Component,Vuex,我创建了一个组件,用于创建带有发票项输入字段的动态行 <template> <tr> <td class="p-0" align="center"><label class="m-0">{{ row.id + 1 }}</label></td> <td class="p-0" align="center"> <input type="text"
<template>
<tr>
<td class="p-0" align="center"><label class="m-0">{{ row.id + 1 }}</label></td>
<td class="p-0" align="center">
<input type="text" v-model="row.name" name="product_name[]" value="" class="form-control form-control-sm border-0" placeholder="Product Name ...">
</td>
<td class="p-0" align="center">
<input type="text" v-model="row.hsn" name="product_hsn[]" value="" class="form-control form-control-sm border-0" placeholder="900574">
</td>
<td class="p-0" align="center">
<input type="number" v-model="row.qty" name="product_qty[]" value="1" class="form-control form-control-sm border-0" placeholder="0">
</td>
<td class="p-0">
<input type="number" v-model="row.rate" name="product_rate[]" value="" class="form-control form-control-sm border-0" placeholder="0.00">
</td>
<td class="p-0">
<input type="number" v-model="row.amount" name="product_amount[]" readonly="readonly" v-bind:value="row.qty * row.rate" class="form-control form-control-sm border-0" placeholder="0.00">
</td>
</tr>
</template>
<script>
export default {
props: ['row'],
data() {
return {
slabs: [0, 0.25, 3, 5, 12, 18, 28],
}
},
mounted() {}
}
</script>
App.js
....
computed: {
invoiceRows() {
return this.$store.state.items
}
},
这是我的vuex,它管理所有共享状态:
export const store = new Vuex.Store({
state: {
activeType: null,
stateList: [],
companyState: [],
items: [{
id: 0, name: null, hsn: null, qty: 1, rate: null, discount: 0,
taxSlab: 0, cessRate: null, cessAmount: null
}],
billToSupplyState: [],
shipToSupplyState: []
},
actions,
mutations
})
但是如果我从我的组件中删除
v-model=“row.amount”
,它就会工作。有谁能帮我一下,让我知道我错过了什么吗?可能是因为您的项目:[{…rate:null}]
因此无法计算您的行的金额。还有一件事。您通常不应该使用道具传递的值作为您的v模型。@MatWaligora,带有项:[{…rate:null}]
是可以的,因为如果我删除v-model=“row.amount”
则一切正常。我需要这个row.amount
用于其他计算好吧,我知道怎么了,v-model=“row.amount”
接管v-bind:value=“row.qty*row.rate”
这就是为什么它只显示你的行.amount
而不计算你的:value
。尝试使用监视程序或计算属性更新行.金额
上的行.费率
/行.数量
更改。祝你好运:)
export const store = new Vuex.Store({
state: {
activeType: null,
stateList: [],
companyState: [],
items: [{
id: 0, name: null, hsn: null, qty: 1, rate: null, discount: 0,
taxSlab: 0, cessRate: null, cessAmount: null
}],
billToSupplyState: [],
shipToSupplyState: []
},
actions,
mutations
})