rt2zz / redux-persist

persist and rehydrate a redux store
MIT License
12.9k stars 862 forks source link

Improve documentation on `createTransform()` #1423

Open azerum opened 1 year ago

azerum commented 1 year ago

In current documentation about createTransform() it unclear inboundState and outboundState parameters are full redux states to be serialized/deserialized or a value of a field of the state:

import { createTransform } from 'redux-persist';

const SetTransform = createTransform(
  // transform state on its way to being serialized and persisted.
  (inboundState, key) => {
    // convert mySet to an Array.
    return { ...inboundState, mySet: [...inboundState.mySet] };
  },
  // transform state being rehydrated
  (outboundState, key) => {
    // convert mySet back to a Set.
    return { ...outboundState, mySet: new Set(outboundState.mySet) };
  },
  // define which reducers this transform gets called for.
  { whitelist: ['someReducer'] }
);

export default SetTransform;

As it turns out, each function has signature (fieldValue, key, state) => newValue. I think the documentation should describe all three parameters. I can submit PR later

yixiaojiu commented 1 year ago

This help me a lot.