updateCtrl
info
This is an action creator which helps you to update controller reducer.
controller.action.updateCtrl({ test: 'test' });
- 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>) {
yield put(controller.action.updateCtrl({ test: 'test' } }));
// ...
}
index.ts
import logo from './logo.svg';
import { controller } from './controller';
import React, { useCallback } from 'react';
import { useController } from 'redux-saga-controller';
function User () {
const [{ disabled }, { updateCtrl }, isControllerSubscribed] = useController(controller);
const handleUpdateData = useCallback(() => updateCtrl({ test: 'test' } }), [updateCtrl]);
<button className="btn" disabled={disabled} onClick={handleUpdateData}>
{ disabled ? <img src={logo} className="logo" alt="logo" /> : <span> UPDATE </span> }
</button>
}
controller.js
import { put } from 'redux-saga/effects';
function * initializeSaga ({ type, payload }) {
yield put(controller.action.updateCtrl({ test: 'test' } }));
// ...
}
index.js
import logo from './logo.svg';
import { controller } from './controller';
import React, { useCallback } from 'react';
import { useController } from 'redux-saga-controller';
function User () {
const [{ disabled }, { updateCtrl }, isControllerSubscribed] = useController(controller);
const handleUpdateData = useCallback(() => updateCtrl({ test: 'test' } }), [updateCtrl]);
return <button className="btn" disabled={disabled} onClick={handleUpdateData}>
{ disabled ? <img src={logo} className="logo" alt="logo" /> : <span> UPDATE </span> }
</button>
}