Heim >Web-Frontend >js-Tutorial >Wie implementiert man zeitgesteuerte Redux-Aktionen?

Wie implementiert man zeitgesteuerte Redux-Aktionen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-05 02:16:09360Durchsuche

How to Implement Timed Redux Actions?

Wie schicke ich eine Redux-Aktion mit einem Timeout?

In Redux können Sie setTimeout verwenden und eine andere Aktion versenden, um den Benachrichtigungsstatus zurückzugeben nach einer gewissen Zeit wieder in den Ausgangszustand zurück. Auf diese Weise verschwinden Benachrichtigungen automatisch nach einem bestimmten Zeitintervall.

Verwendung von Inline-JavaScript

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

Extrahieren eines Async Action Creator

Wenn Sie beim Inline-Ansatz auf Codeduplizierung oder Race-Bedingungen stoßen, sollten Sie das Extrahieren einer asynchronen Aktion in Betracht ziehen Ersteller.

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

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

Thunk-Middleware verwenden

Für komplexe Apps möchten Sie möglicherweise die Redux-Thunk-Middleware verwenden. Es ermöglicht Redux, Funktionen als Aktionsersteller zu erkennen und bietet Zugriff auf „dispatch“ und „getState“ innerhalb dieser Funktionen.

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

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

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

Status in Thunks lesen

Innerhalb von Thunk-Aktionserstellern Sie können getState verwenden, um den aktuellen Status des Geschäfts auszulesen. Dies ist hilfreich, um Aktionen basierend auf dem aktuellen Status bedingt auszulösen.

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

Denken Sie daran, diese Techniken nur bei Bedarf zu verwenden, da einfaches Inline-JavaScript für viele Szenarien ausreichen kann.

Das obige ist der detaillierte Inhalt vonWie implementiert man zeitgesteuerte Redux-Aktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn