redux:通过动态键选择/获取嵌套状态



这里是我的redux状态,该状态具有动态嵌套对象名

const search = {
client :
{ result: [],
selected: null,
isLoading: false,
isSuccess: false,},
[dynamicKey] :
{ result: [],
selected: null,
isLoading: false,
isSuccess: false,},
[dynamicKey2] :
{ result: [],
selected: null,
isLoading: false,
isSuccess: false,}
};

我试图通过动态键获得嵌套对象,这是我的选择器代码:

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 />
}

关于这种模式的更多信息可以在这里找到

最新更新