clearCtrl
info
This is an action creator which helps you to bring reducer to initial state.
controller.action.clearCtrl();
- TypeScript
- JavaScript
controller.ts
import { put } from 'redux-saga/effects';
// NOTE action shortcut
interface Act<Payload> extends Action {
payload: Payload
}
// NOTE action payloads
interface InitializePayload {
some: string;
}
function * initializeSaga ({ type, payload } : Act<InitializePayload> ) {
// NOTE bring reducer to initial state before start initialization
yield put(controller.action.clearCtrl());
// ...
}
index.ts
import React, { useEffect } from 'react';
import { controller } from './controller';
import { useController } from 'redux-saga-controller';
function User () {
const [reducer, { clearCtrl, initialize }, isControllerSubscribed] = useController(controller);
useEffect(() => {
initialize({ id });
return () => clearCtrl();
}, [clearCtrl, initialize, id]);
// ...
}
controller.js
import { put } from 'redux-saga/effects';
function * initializeSaga ({ type, payload }) {
// NOTE bring reducer to initial state before start initialization
yield put(controller.action.clearCtrl());
// ...
}
index.js
import React, { useEffect } from 'react';
import { controller } from './controller';
import { useController } from 'redux-saga-controller';
function User () {
const [reducer, { initialize, clearCtrl }, isControllerSubscribed] = useController(controller);
useEffect(() => {
initialize({ id });
return () => clearCtrl();
}, [clearCtrl, initialize, id]);
// ...
}