【发布时间】:2021-09-21 08:05:10
【问题描述】:
我正在尝试将数据发送到 api 端点,但我用来触发操作的方法没有获取用户 ID 和表单数据。
我有一个用于通过 api 更新用户信息的表单。在有人输入新信息之前,我会获取用户信息并将其显示为占位符文本。我正在尝试将数据发送到端点,但该方法没有获取用户 ID 和表单数据。 [[编辑用户详细信息]]。这是代码
import axios from "axios";
export default {
name: "Edit",
data() {
let userId = this.$route.params.id;
this.getUserDetails(userId);
this.editUserDetails(userId);
console.log(userId);
return {
userDetails: {},
formdata: {
name: '',
occupation: '',
email: '',
bio: '',
},
};
},
methods: {
getUserDetails(id) {
console.log(id);
axios
.get(`https://607e868602a23c0017e8b79e.mockapi.io/api/v1/users/${id}`)
.then((response) => {
this.userDetails = response.data;
})
.catch((error) => {
console.log(error);
});
},
editUserDetails(id) {
console.log(this.formdata);
console.log(id);
axios
.patch(`https://607e868602a23c0017e8b79e.mockapi.io/api/v1/users/${id}`, this.formdata)
.then((response) => {
console.log(this.formdata);
console.log(response);
})
.catch((error) => {
console.log(this.formdata);
console.log(error);
});
},
},
};
这是我在更新之前用来从用户那里收集数据的表单
<form @submit.prevent="editUserDetails(id)">
<div class="container">
<div class="row">
<div class="label col-2"><label for="">ID: </label></div>
<div class="text col-8">
<span v-bind="formdata.id">{{ userDetails.id }}</span>
</div>
</div>
<div class="row">
<div class="label col-2"><label for="name">Name: </label></div>
<div class="datas col-8">
<input
class="input"
id="name"
type="text"
v-bind="formdata.name"
:placeholder="[[userDetails.name]]"
/>
</div>
</div>
<div class="row">
<div class="label col-2">
<label for="occupation">Occupation: </label>
</div>
<div class="datas col-8">
<input
class="input"
id="occupation"
type="text"
v-bind="formdata.occupation"
:placeholder="[[userDetails.occupation]]"
/>
</div>
</div>
<div class="row">
<div class="label col-2"><label for="email">Email: </label></div>
<div class="datas col-8">
<input
class="input"
id="email"
type="text"
v-model="formData"
v-bind="formdata.email"
:placeholder="[[userDetails.email]]"
/>
</div>
</div>
<div class="row">
<div class="label col-2"><label for="bio">Bio: </label></div>
<div class="datas col-8">
<textarea
class="input"
name=""
id="bio"
cols="60"
rows="4"
v-bind="formdata.bio"
:placeholder="[[userDetails.bio]]"
></textarea>
</div>
</div>
</div>
<button>Submit</button>
</form>
可能是什么问题...
【问题讨论】: