Использование Middleware в реагирующих хуках - PullRequest
0 голосов
/ 05 апреля 2019

Таким образом, я использую избыточность для управления состоянием в своем приложении-реактиве. Я с нетерпением ждал возможности использовать хуки в своем приложении. В моем магазине есть несколько экземпляров одного редуктора, поэтому отправка действий на один редуктор - это своего рода боль, с которой приходится иметь дело.

Крючки, кажется, обеспечивают действительно аккуратное решение в такой ситуации. Мы используем промежуточное ПО для отлова определенных действий и выполнения побочных эффектов. Я надеялся реализовать функциональность, подобную промежуточному программному обеспечению, для ловушек, в которой действие, отправляемое на ловушки, также может быть зафиксировано в промежуточном программном обеспечении для редукторов.

Будем весьма благодарны за любые предложения относительно того, как можно достичь такой функциональности.

Спасибо.

1 Ответ

0 голосов
/ 06 апреля 2019

Вы когда-нибудь слышали или пытаетесь использовать redux-saga для асинхронных вещей промежуточного программного обеспечения, таких как выборка данных, и нечистых вещей, таких как доступ к кэшу браузера, которым легче управлять, более эффективно выполнять, легко тестировать и лучше обрабатывать сбои.

для более полной документации вы можете увидеть в здесь

я приведу простой пример использования сагы Redx в качестве побочного эффекта

import api from '../api/apidetailproduct'; //if using api import it
import {
    takeLatest, //Spawns a saga on each action dispatched to the Store that matches pattern
    select, //instructs the middleware to invoke the provided selector on the current Store's state
    call, //for calling api
    put //instructs the middleware to dispatch an action to the Store. 
} from 'redux-saga/effects';
import {
    REQUEST_PRODUCT, 
} from '../actions/constants';
import {
    responseProduct,
} from '../actions/product';

export function* detailEffect(){
    const {loginreducer} = yield select() //first select your reducer where you store
    try {
        const {data} = yield call(api, loginreducer.token )//calling the api and then send the variable
        yield put(responseProduct(data))//put the data
    } catch (error) {
        console.log("error", error);
    }
}

export const productsagas = [takeLatest(REQUEST_PRODUCT, detailEffect)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...