问题描述
const search = {
client :
{ result: [],selected: null,isLoading: false,isSuccess: false,},[dynamicKey] :
{ result: [],[dynamicKey2] :
{ result: [],}
};
import { createSelector } from "reselect";
export const searchState = (state) => state.search;
export const selectSearch = (keyRef) =>
createSelector([searchState],(search) => search[keyRef]);
解决方法
您忘了问这个问题,但您的代码看起来不错。在组件中,您可以使用 useMemo 来不必要地创建选择器:
//renamed the selector to create...
export const createSelectSearch = (keyRef) =>
createSelector([searchState],(search) => search[keyRef]);
//compnent example
const MyComponent = ({keyRef}) => {
const selectSearch = React.useMemo(
()=>createSelector(keyRef),//create the selector when keyRef changes
[keyRef]
);
const result = useSelector(selectSearch)
return <jsx />
}
可以找到有关此模式的更多信息here