【问题标题】:redux : Select/get nested State by dynamic keysredux : 通过动态键选择/获取嵌套状态
【发布时间】:2021-05-08 06:25:21
【问题描述】:

这里是我的 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]);

【问题讨论】:

    标签: redux react-redux reselect


    【解决方案1】:

    您忘了问这个问题,但您的代码看起来不错。在组件中,您可以使用 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-05
      • 2021-04-15
      • 1970-01-01
      • 2023-02-07
      • 2018-12-29
      • 2017-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多