Redux-Saga es una biblioteca de middleware que maneja tareas asíncronas con efectos secundarios, como API. Además, podemos leer el estado y solicitar acciones en Saga. Utiliza funciones de generador para realizar tareas asíncronas.
A continuación se describe por qué usamos Saga y cómo instalarlo. Luego, se analizan los métodos útiles de Saga para manejar la API.
¡El deber principal de Saga es manejar las llamadas API y actualizar el estado en función de la respuesta de los puntos finales! Una de las principales ventajas de redux-saga es que es fácil de probar.
Antes de trabajar con Redux-Saga, debe estar familiarizado con Redux.
Hay dos formas de instalar redux-saga según su administrador de paquetes:
npm install redux-saga
yarn add redux-saga
import { call, put, takeEvery } from 'redux-saga/effects'
import Api from '...'
function* fetchUser(action) {
try {
const user = yield call(Api.fetchUser, action.payload.userId);
yield put({type: "USER_FETCH_SUCCEEDED", user: user});
} catch (e) {
yield put({type: "USER_FETCH_FAILED", message: e.message});
}
}
function* mySaga() {
yield takeEvery("USER_FETCH_REQUESTED", fetchUser);
}
export default mySaga;
La API puede ser algo como esto:
import axios from 'axios';
const Api = {
fetchUser: (userId) => {
return axios.get(`...?userId=${userId}`)
}
};
export default Api;
import { createStore, applyMiddleware } from 'redux'
import createSagaMiddleware from 'redux-saga'
import reducer from './reducers'
import mySaga from './sagas'
const sagaMiddleware = createSagaMiddleware();
const store = createStore(
reducer,
applyMiddleware(sagaMiddleware)
);
sagaMiddleware.run(mySaga);
Los métodos más utilizados se explicarán a continuación:
Se lee desde el selector (estado), aquí hay una muestra de la llamada de selección.
const userId = yield select(userSelectors.getUserId);
Despacha acciones, por ejemplo:
yield put({type: "USER_FETCH_SUCCEEDED", user: user});
Llama a una función asíncrona, como API, por ejemplo:
const user = yield call(Api.fetchUser, action.payload.userId);
Observa en cada despacho de acción para llamar a una función generadora.
yield takeEvery("USER_FETCH_REQUESTED", fetchUser);
Es lo mismo que takeEvery, la única diferencia es que cuando la llamada anterior está pendiente, no vuelve a llamar.
yield takeLatest("USER_FETCH_REQUESTED", fetchUser);
Redux-saga es una biblioteca para manejar tareas asíncronas en redux. En este artículo, se discute por qué y cómo usar Saga y los métodos.
Si eres alguien que tiende a ignorar el mensaje de advertencia "cada elemento debe tener una clave única" al mapear una matriz en React, es importante tomarse un momento para comprender por qué se genera esta advertencia en primer lugar. En React, al renderizar una lista de elementos usando el método “Array.
Un curso intensivo con infografías sobre lo que significan y cuándo usar cuál. Antecedentes Un aspecto crítico del desarrollo de API REST es la forma en que los clientes realizan solicitudes y reciben respuestas.
Por Alyson Lee, asesora de gestión de asuntos gubernamentales El proceso de asignaciones anuales del gobierno federal es fundamental para nuestros esfuerzos por financiar la eliminación de dióxido de carbono (CDR). Cada año, Carbon180 envía solicitudes a varias oficinas del Congreso para ayudar a guiar hacia dónde fluirán los dólares del próximo año.
Introducción: Bienvenidos, valientes lectores, a un viaje que nos llevará a las profundidades más oscuras de nuestro planeta. En este blog, profundizamos en el enigmático mundo de la Fosa de las Marianas, descubriendo sus secretos ocultos y descubriendo las verdades escalofriantes que se encuentran debajo de su superficie.
[Alerta de activación: este ensayo incluye capturas de pantalla de personas que elogiaron al asesino de Jordan Neely.] Los funcionarios encargados de hacer cumplir la ley finalmente, y quizás a regañadientes, acusaron a Daniel Penny, el hombre que estranguló a Jordan Neely hasta que murió, por ese homicidio.
Para evitar ambigüedades se utilizarán los siguientes términos; autenticador; El teléfono móvil que se utiliza para realizar el inicio de sesión en el sitio web; El sitio web o la aplicación que el usuario está utilizando para realizar el servicio de solicitud de inicio de sesión; El proveedor que proporciona el servicio dado, por ejemplo