(react redux)如何将params传递给useSelector并由createSelector检索



我当前正在使用useSelector挂钩将category参数传递给redux:

const productDataByCategory = useSelector(state => selectProductByCategory(state, category));

但是,createSelector无法检索category参数,并返回了一个空数组。语法对我来说似乎还可以,所以我真的不知道这里的确切问题是什么:

export const {
selectAll: selectAllProducts,
selectById: selectProductsById
} = productsAdapter.getSelectors(state => selectProductsData(state) ?? initialState);
export const selectProductByCategory = createSelector(
selectAllProducts,
(productsResult, category) => productsResult.filter(item => item.category === category)
);

我的代码出了什么问题?非常感谢。

createSelector来自https://github.com/reduxjs/reselect

以下是如何将参数传递给选择器:

第一个数组中的第二个函数将转发参数,最后一个函数将接收数组中的所有元素

const selectProductsByCategory = createSelector(
[
selectAllProducts,
(state, category) => category
],
// Output selector gets (`productsResult, category)` as args
(productsResult, category) => productsResult.filter(item => item.category === category)
)

以下是如何将其与useSelector一起使用

const productDataByCategory = useSelector(state => selectProductByCategory(state, category));

相关内容

  • 没有找到相关文章

最新更新