Reset
The reset plugin allows you to remove all of the data in a slice, effectively "resetting" it. You may optionally scope the resetting to affect a single list or request object.
First, you need to register this plugin for any slice that needs it.
import { resourceReducer } from 'redux-resource';
import { reset } from 'redux-resource-plugins';
const reducer = resourceReducer('books', {
plugins: [reset]
});
Then, you can use the action creator that ships with the plugin to perform the reset.
import { reset } from 'redux-resource-plugins';
import store from './store';
store.dispatch(reset.resetResource('books'));
Resetting a slice will leave you with the following state:
{
resources: {},
meta: {},
lists: {},
requests: {}
}
Resetting a list will set the list to be an empty array.
The additional initial state that you pass to
resourceReducer
will also be included when you reset your state.You can pass a second argument,
options
, to scope what is reset:import { reset } from 'redux-resource-plugins';
import store from './store';
// Reset just the "createBook" request
store.dispatch(reset.resetResource('books', {
requestKey: 'createBook'
}));
// Reset just the "favorites" list
store.dispatch(reset.resetResource('books', {
list: 'favorites'
}));
// Reset a list and a request at the same time
store.dispatch(reset.resetResource('books', {
list: 'favorites',
requestKey: 'readFavorites'
}));
Resets the slice for
resourceType
. Pass options
to scope what's reset. There are two valid options:requestKey
: Reset the request with this keylist
: Reset the list with this name
- 1.
resourceType
(String): The name of the slice to reset. - 2.[
options
] (String): Options to scope what is reset.
(
Object
): A Redux action to be dispatched.Last modified 5yr ago