Redux-persist react native AsyncStorage Object Map serializa



我正在使用 redux persist 在应用程序启动时自动保留和解除冻结状态,如文档中所述,特别是使用 AsyncStorage:https://github.com/rt2zz/redux-persist。

它适用于字符串。这是存储为字符串的所有状态,都正确保留和解除冻结。

但是,对于自定义对象映射,它确实会正确解除冻结状态。我很确定这是因为字符串是可序列化的,而对象映射不是。

这是化简器,其中 productTypeToProducts 表示该映射。当重新水合时它是空的

case 'RECEIVE_ALL_PRODUCTS':
  return Object.assign({}, state, {
    productTypeToProducts: action.productTypeToProducts
  });

因此,我需要使用类似 JSON.stringify 的东西来将我的状态树隐藏为 JSON。

我如何实现这一点,以便在应用程序启动时对象状态(而不是 JSON)自动解除冻结。(我猜这与在文档中使用转换有关?

似乎默认情况下,AsyncStorage与redux-persist结合使用,可以正确序列化对象数组。所以我在我的化简器中将下面的 Map 转换为数组,它正确地水合了状态。

  case 'RECEIVE_ALL_PRODUCTS':
      let productsObject = {};
      action.productTypeToProducts.forEach((value,key)=>{
        productsObject[key] = value
      });
      return Object.assign({}, state, {
        productsAsObject: productsObject,
      });

相关内容

  • 没有找到相关文章

最新更新