2017-09-25 6 views
1

私はredux/reduxを使ってredux-searchを使用するアプリケーションで検索フィルタを実装しようとしています。私が最初に気がついたのは、例のようにストアエンハンサーを追加しようとするときです。redux-searchを実装する方法

// Compose :reduxSearch with other store enhancers 
 
const enhancer = compose(
 
    applyMiddleware(...yourMiddleware), 
 
    reduxSearch({ 
 
    // Configure redux-search by telling it which resources to index for searching 
 
    resourceIndexes: { 
 
     // In this example Books will be searchable by :title and :author 
 
     books: ['author', 'title'] 
 
    }, 
 
    // This selector is responsible for returning each collection of searchable resources 
 
    resourceSelector: (resourceName, state) => { 
 
     // In our example, all resources are stored in the state under a :resources Map 
 
     // For example "books" are stored under state.resources.books 
 
     return state.resources.get(resourceName) 
 
    } 
 
    }) 
 
)

私はそれがどのように動作するかを確認するために例の中に深くダイビングを取得しようとしたとき、resourceSelectorまでevarythingが、私はかろうじて彼らがどのように生成されるか見ることができますし、最後の行を理解しますエラーが返され、はこの

のように見える未定義

私の状態オブジェクトのプロパティ「GET」を読み込めません

Reduxの検索を理解し、誰からのすべてのヘルプは便利です

答えて

1

この行場合:

Cannot read property 'get' of undefined

ことを示しています

return state.resources.get(resourceName) 

は、このエラーの原因となっていますstate.resourcesは定義されていません。そして確かに、あなたの州はresources属性を定義していません。

例は、インデックスへのリソースの多くの種類をredux-searchを使用しての心の中にアイデアを書かれていた例:

state: { 
    resources: { 
    books: [...], 
    authors: [...], 
    // etc 
    } 
} 

あなたになり報告しました問題の解決策のいずれか:

  • A:中間のresourcesオブジェクトを追加します(今後他のものをインデックスに登録したいと思っている場合は、その組織が好きです)。
  • B:state.resources.get(resourceName)state[resourceName]などと置き換えてください。
+0

ありがとう、あなたには偉大な図書館がありますが、ごく少数の人々がそれを理解しています – Craques

+0

私は失礼になり、2週間以上かけてこの問題を解決しようとしています。なぜそれを理解しようとしているのですか? – Craques

+0

それは大丈夫です。私はそのような状況でも不満を感じる。わかりました。 – brianvaughn

関連する問題