首頁 >web前端 >js教程 >如何實現定時 Redux 操作?

如何實現定時 Redux 操作?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-05 02:16:09360瀏覽

How to Implement Timed Redux Actions?

如何調度一個超時的 Redux Action?

在 Redux 中,你可以使用 setTimeout 並調度另一個 Action 來返回通知狀態經過一定時間後恢復到初始狀態。這樣,通知會在指定的時間間隔後自動消失。

使用內聯 JavaScript

store.dispatch({ type: 'SHOW_NOTIFICATION', text: 'You logged in.' });
setTimeout(() => {
  store.dispatch({ type: 'HIDE_NOTIFICATION' });
}, 5000);

擷取非同步操作建立器

如果您使用內聯方法遇到程式碼重複或競爭條件,請考慮提取非同步操作

function showNotificationWithTimeout(dispatch, text) {
  const id = nextNotificationId++;
  dispatch(showNotification(id, text));

  setTimeout(() => {
    dispatch(hideNotification(id));
  }, 5000);
}

使用Thunk 中間件

對於複雜的應用程序,您可能需要使用Redux Thunk 中間件。它允許 Redux 將函數識別為動作創建者,並提供對這些函數內的調度和 getState 的存取。

import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';

const store = createStore(
  reducer,
  applyMiddleware(thunk)
);

store.dispatch(showNotificationWithTimeout('You logged in.'));

在 Thunk 中讀取狀態

在 thunk 動作建立者中,您可以使用 getState 來讀取儲存的目前狀態。這對於根據當前狀態有條件地調度操作很有幫助。

showNotificationWithTimeout(dispatch, getState) {
  if (!getState().areNotificationsEnabled) {
    return;
  }
  // ... continue with action-dispatching logic
}

請記住僅在必要時使用這些技術,因為簡單的內聯 JavaScript 可能足以滿足許多場景。

以上是如何實現定時 Redux 操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn