如何实现redux搜索

如何实现redux搜索,redux,Redux,我正在尝试在我的应用程序中实现一个搜索过滤器,它使用react/redux using redux search。我得到的第一个问题是当我尝试添加商店增强器时,如示例中所示 //组合:使用其他商店增强器进行reduxSearch 常量增强子=合成( applyMiddleware(…中间件), reduxSearch({ //配置redux搜索,告诉它要索引哪些资源进行搜索 资源索引:{ //在本例中,可以通过以下方式搜索书籍:title和:author 书籍:[“作者”、“书名”] }, /

我正在尝试在我的应用程序中实现一个搜索过滤器,它使用react/redux using redux search。我得到的第一个问题是当我尝试添加商店增强器时,如示例中所示

//组合:使用其他商店增强器进行reduxSearch
常量增强子=合成(
applyMiddleware(…中间件),
reduxSearch({
//配置redux搜索,告诉它要索引哪些资源进行搜索
资源索引:{
//在本例中,可以通过以下方式搜索书籍:title和:author
书籍:[“作者”、“书名”]
},
//此选择器负责返回每个可搜索资源集合
resourceSelector:(resourceName,state)=>{
//在我们的示例中,所有资源都存储在:resources映射下的状态中
//例如,“图书”存储在state.resources.books下
返回state.resources.get(resourceName)
}
})
)
如果此行:

return state.resources.get(resourceName)
导致此错误的原因是:

无法读取未定义的属性“get”

表示未定义
state.resources
。果然,您的州没有定义
resources
属性

编写示例时考虑到使用
redux search
索引多种类型的资源,例如:

state: {
  resources: {
    books: [...],
    authors: [...],
    // etc
  }
}
您报告的问题的解决方案是:

  • 答:添加一个中介
    resources
    对象(如果您认为将来可能需要索引其他内容,并且您喜欢该组织)
  • B:用
    状态[resourceName]
    或类似内容替换
    状态.resources.get(resourceName)

谢谢,你有一个很棒的图书馆,但很少有人能理解它。如果我表现得粗鲁无礼,我已经花了两个多星期的时间试图实现这一点,这让我有点沮丧,我知道图书馆很好,这就是为什么我试图理解它。没关系。我在这种情况下也会感到沮丧。我明白了。终于让它工作了,我不得不在我的增强器中交换顺序,我有{applyMiddleware,devToolsExtension,reduxSearch},交换最后两个让它工作了,它非常棒,我试着用lunr和webworkers做我自己的版本,但它没有打败这个,很棒的库,非常感谢。很高兴听到这个消息!:)