REACT:如何构建类似于 redux useSelector 的对象字段选择器挂钩

REACT: How to build object field selector hook similar to redux useSelector

我正在尝试构建一个挂钩,它将 return 一个对象的键值对的 selected 子集。假设钩子可以访问如下所示的对象:

const stores = { someStore: { someField: 'fieldValue' } }

我们如何将回调传递给挂钩到 stores 对象的 select 字段? 理想的情况是让挂钩像这样工作:

const {selectedField} = useStores(stores => ({ selectedField: stores.someStore.someField }))

这个钩子的目标是在我的代码库中替换 MobX @inject(stores => ({...}))

只是 运行 对应 stores

的选择器

function useStores(selector) {
  const stores = { someStore: { someField: 'fieldValue' } };
  
  return selector(stores); 
}

const { selectedField } = useStores(stores => ({ selectedField: stores.someStore.someField }));

console.log(selectedField);