You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.4 KiB
52 lines
1.4 KiB
"use strict"; |
|
|
|
exports.__esModule = true; |
|
exports.createDispatchHook = createDispatchHook; |
|
exports.useDispatch = void 0; |
|
|
|
var _Context = require("../components/Context"); |
|
|
|
var _useStore = require("./useStore"); |
|
|
|
/** |
|
* Hook factory, which creates a `useDispatch` hook bound to a given context. |
|
* |
|
* @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`. |
|
* @returns {Function} A `useDispatch` hook bound to the specified context. |
|
*/ |
|
function createDispatchHook(context) { |
|
if (context === void 0) { |
|
context = _Context.ReactReduxContext; |
|
} |
|
|
|
var useStore = context === _Context.ReactReduxContext ? _useStore.useStore : (0, _useStore.createStoreHook)(context); |
|
return function useDispatch() { |
|
var store = useStore(); |
|
return store.dispatch; |
|
}; |
|
} |
|
/** |
|
* A hook to access the redux `dispatch` function. |
|
* |
|
* @returns {any|function} redux store's `dispatch` function |
|
* |
|
* @example |
|
* |
|
* import React, { useCallback } from 'react' |
|
* import { useDispatch } from 'react-redux' |
|
* |
|
* export const CounterComponent = ({ value }) => { |
|
* const dispatch = useDispatch() |
|
* const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), []) |
|
* return ( |
|
* <div> |
|
* <span>{value}</span> |
|
* <button onClick={increaseCounter}>Increase counter</button> |
|
* </div> |
|
* ) |
|
* } |
|
*/ |
|
|
|
|
|
var useDispatch = /*#__PURE__*/createDispatchHook(); |
|
exports.useDispatch = useDispatch; |