我当前正在使用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));