【发布时间】:2019-11-10 18:30:01
【问题描述】:
我尝试使用相同的表单进行创建和编辑。我已经将带有道具的 id 从一个组件传递到另一个组件,它工作正常。使用该 ID,我尝试在 getter 的帮助下从 vuex 存储状态中获取数据。吸气剂正确地返回了数据。但我无法填写表格。我已经尝试过创建、计算和挂载属性,但我不起作用。
我尝试使用 mount、create 和 computed 填充表单。
我希望当我单击编辑按钮时会填充表单的输出,但在表单中看不到任何内容。
模板代码
<template>
<b-form-group
label-cols="12"
label="Minimum Salary: "
>
<b-form-input
id="input-1"
v-model="record.min_salary"
type="number"
></b-form-input>
</b-form-group>
<b-form-group
label-cols="12"
label-cols-lg="3"
label-for="input-2"
label="Maximum Salary: "
label-align-sm="right"
label-align="left"
>
<b-form-input
id="input-2"
v-model="record.max_salary"
type="number"
></b-form-input>
</b-form-group>
<b-form-group
label-cols="12"
label-cols-lg="3"
label-for="input-2"
label="Tax Rate: "
label-align-sm="right"
label-align="left"
>
<b-form-input
id="input-2"
v-model="record.tax_rate"
type="number"
></b-form-input>
</b-form-group>
<b-form-group
label-cols="12"
label-cols-lg="3"
label-for="input-2"
label="Deductible: "
label-align-sm="right"
label-align="left"
>
<b-form-input
id="input-2"
v-model="record.deductible"
type="number"
></b-form-input>
</b-form-group>
</b-form>
</template>
Vue 脚本代码
<script>
import { mapGetters, mapActions } from "vuex";
export default {
props: ["id"],
data: () => ({
update: false,
record: {
min_salary: "",
max_salary: "",
tax_rate: "",
deductible: ""
}
}),
created() {
if (this.id != null) {
this.update = true;
this.fetchIncomeTaxRate(this.id);
this.createoredit = "EDIT";
}
},
mounted() {
if (this.id != null) {
this.record.min_salary = this.getIncomeTaxRate.min_salary;
this.record.max_salary = this.getIncomeTaxRate.max_salary;
this.record.tax_rate = this.getIncomeTaxRate.tax_rate;
this.record.deductible = this.getIncomeTaxRate.deductible;
}
},
methods: { ...mapActions(["fetchIncomeTaxRate"])},
computed: {...mapGetters(["getIncomeTaxRate"])}
};
</script>
商店代码
import axios from "axios";
import commonAPI from "../commonAPI";
const state = {
incomeTaxRate: []
};
const mutations = {
setIncomeTaxRate: (state, incomeTaxRate) =>
(state.incomeTaxRate = incomeTaxRate)
};
const getters = {
getIncomeTaxRate: state => {
return state.incomeTaxRate;
}
};
const actions = {
async fetchIncomeTaxRate({ commit }, id) {
const response = await axios.get(
commonAPI.PAYROLL_BASE_URL + `/income-tax-rates/${id}`
);
commit("setIncomeTaxRate", response.data);
}
};
export default {
state,
mutations,
getters,
actions
};
【问题讨论】:
标签: vue.js vuex vue-router