Я пытаюсь удалить данные, но получаю эту ошибку:
this.jobPosts.filter is not a function
PostJobIndex. vue файл:
deleteJobPost: async function(jobPost) {
if (!window.confirm('Are you sure you want to delete this Job Post?')) {
return;
}
try {
await employerService.deleteJobPost(jobPost.id);
this.jobPosts = this.jobPosts.filter(obj => {
return obj.id != jobPost.id;
});
console.log(this.jobPosts);
this.$toast.success("Job Post deleted Successfully!");
} catch (error) {
console.log(error);
this.$toast.error(error.response.data.message);
}
},
У меня была такая же проблема с моим обновлением метод, и я верю, что это произошло потому, что я пытался отобразить объект или что-то в этом роде вместо массива. В конце концов, я использовал Object.keys(this.jobPosts).map
для моего метода обновления, и он сработал:
Object.keys(this.jobPosts).map(jobPost => {
if (jobPost.id == response.data.id) {
for (let key in response.data) {
jobPost[key] = response.data[key];
}
}
});
Но когда я делаю это для обновления, он не работает:
this.jobPosts = Object.keys(this.jobPosts).filter(obj => {
return obj.id != jobPost.id;
});
ОБНОВЛЕНО
Вот код для загрузки сообщений о вакансиях:
loadJobPosts: async function() {
try {
const response = await employerService.loadJobPosts();
this.jobPosts = response.data;
console.log(this.jobPosts);
} catch (error) {
this.$toast.error('Some error occurred, please refresh!');
}
},
Я использую Vuex для управления состоянием, и я использую службы, которые просто содержат http-запросы ax ios. Вот откуда эта строка. employerService.loadJobPosts()
loadJobPosts()
- это функция внутри моей службы работодателя. js файл.
Я также использую Laravel для своей серверной части. Вот мой JobPostsController. php файл:
public function index()
{
$jobPosts = JobPost::all()->where('user_id', Auth::user()->id);
return response()->json($jobPosts, 200);
}