2017-01-09 4 views
0
私は自動的に持続し、ドキュメントに記載されたアプリケーションの起動時に状態を再水和するために持続Reduxのを使用しています

を反応Reduxのは、持続します。特にAsyncStorageを使用して、ネイティブAsyncStorageのオブジェクトマップのシリアル化

これは文字列に対して正しく機能します。ストリングが永続化されて正しく再水和されるので、それはストアであるすべての状態です。

ただし、カスタムオブジェクトマップの場合は、状態を正しく再調整します。これはStringsがシリアライズ可能でオブジェクトマップがないためです。

これは減速機で、productTypeToProductsはそのマップを表します。再水和が空の場合

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

したがって、私は状態ツリーをJSONに変換するためにJSON.stringifyのようなものを使用する必要があります。

アプリケーションの起動時にオブジェクト状態(JSONではなく)が自動的に再水和されるように、これを実装するにはどうすればよいですか? (私はこれがドキュメント内の変換を使って何かを持っていると思います)

答えて

0

デフォルトでは、AsyncStorageはredux-persistと組み合わせて使用​​されているように、オブジェクトの配列を適切に直列化します。そこで私は減速機の下のマップを下の配列に変換し、それは適切に状態を水和させました。

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