sub-redux
Version:
[](https://www.npmjs.com/package/sub-redux) [](https://www.npmjs.com/package/sub-redux)
31 lines (30 loc) • 1.3 kB
JavaScript
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
var React = __importStar(require("react"));
var react_redux_1 = require("react-redux");
var actions_1 = require("./actions");
var subStore_1 = require("./subStore");
function useSubRedux(_a) {
var initial = _a.initial, reducer = _a.reducer, middlewares = _a.middlewares;
var store = react_redux_1.useStore();
var instance = React.useMemo(function () { return actions_1.getId(); }, []);
// Dispatch init action during first render (not during useEffect).
React.useMemo(function () {
store.dispatch(actions_1.actions.init({ instance: instance, initial: initial, reducer: reducer, middlewares: middlewares }));
}, []);
// Dispatch destroy action on unmount
React.useEffect(function () {
return function () {
store.dispatch(actions_1.actions.destroy({ instance: instance }));
};
}, []);
return subStore_1.getSubStore(instance, store);
}
exports.useSubRedux = useSubRedux;
;