Может быть, вы можете мне помочь.Я искал и пробовал много вещей.
У меня есть проект Nuxtjs с Laravel 5.7 API (JWT Auth для аутентификации).Пользователь может CRUD сообщение.Все работает или почти.Когда текущий пользователь создает сообщение, после него он перенаправляется на страницу, где его сообщения индексируются.Но иногда появляется новое созданное сообщение, а иногда нет, у меня нет ошибок в журналах консоли, и на стороне сервера созданное сообщение присутствует в базе данных.Когда я обновляю страницу, новый пост отображается.Это очень случайно.То же самое для действия удаления.
Я использую NuxtJs с Vuex для магазина.Я вызываю действие в моем методе компонента с диспетчеризацией.Вызов действия axios put или delete метод, и я фиксирую мутацию для обновления массива state.posts.после отправки я перезагружаю пользователя с модулем аутентификации NuxtJS, чтобы перезагрузить сообщения пользователя.и нажмите маршрут.
Чуть ниже реализации действия удаления, чтобы показать вам мою логику.
Метод моего компонента:
deletePost(post) {
this.$toast.show('Do you really want to remove this post ?', {
duration: 5000,
icon: 'check',
action: [
{
text: 'No',
onClick: (e, toastObject) => {
toastObject.goAway(0)
}
},
{
text: 'Yes',
onClick: (e, toastObject) => {
this.$store.dispatch('posts/deletePost', post).then(() => {
console.log('here')
this.$auth.fetchUser()
this.$router.push({ path: '/:account/posts' })
})
this.$toast.show('Post successfully removed', {
icon: 'check'
})
toastObject.goAway(0)
}
}
]
})
},
Действие сохранения:
deletePost({ commit }, post) {
this.$axios
.delete(`/posts/${post.id}`)
.then(res => {
console.log(res.data)
if (res.data.message === 'success') commit('DELETE_POST', post)
})
.catch(err => {
console.log(err)
})
}
Мутация магазина:
DELETE_POST(state, post) {
const index = state.posts.findIndex(item => item.id === post.id)
state.posts.splice(index, 1)
}