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

Wie implementiert man zeitgesteuerte Redux-Aktionen?

Mary-Kate Olsen
Freigeben: 2024-12-05 02:16:09
Original
379 Leute haben es durchsucht

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);
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

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.'));
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage