Как можно установить новый статус отправки в Vuex через определенный промежуток времени?

Как можно изменить статус отправки в действиях Vuex через некоторое время с использованием setTimeout? У меня есть действие по отправке товара. После завершения отправки, мне нужно изменить статус 'updateisAddLoadingEnded' на false через 3 секунды, чтобы скрыть блок с информацией о добавлении товара. Что я делаю не так?
  • 13 декабря 2023 г. 16:06
Ответы на вопрос 2
Для этого вы можете использовать метод setTimeout внутри действия в Vuex. Вот пример:

```
actions: {
  sendProduct({ commit }) {
    // Выполнение отправки товара

    commit('setIsAddLoadingEnded', true); // Устанавливаем статус isAddLoadingEnded в true

    // Используем setTimeout для изменения значения через 3 секунды
    setTimeout(() => {
      commit('setIsAddLoadingEnded', false); // Устанавливаем статус isAddLoadingEnded в false
    }, 3000);
  }
},

mutations: {
  setIsAddLoadingEnded(state, value) {
    state.isAddLoadingEnded = value;
  }
}
```

В этом примере мы вызываем действие `sendProduct`, которое выполняет отправку товара и устанавливает статус `isAddLoadingEnded` в true. Затем, через `setTimeout`, мы вызываем мутацию `setIsAddLoadingEnded`, которая изменяет статус обратно на false через 3 секунды.

Убедитесь, что вы импортировали и зарегистрировали ваш модуль Vuex в экземпляре вашего приложения перед вызовом этого действия.
Когда вы уже поймёте что такое функция... 

Похожие вопросы