Reactjs 如何将附加参数传递给useSelector

Reactjs 如何将附加参数传递给useSelector,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我正在从一个组件成功调用useSelector,该组件从一个id派生出一个产品名称 const productId = 25; // whatever const productName = useSelector( (state) => state.dashboard.dashboards.filter( ({ Id }) => Id === productId )[0].Name ); 但是,我的选择器依赖于productId,我将其存储在同一

我正在从一个组件成功调用
useSelector
,该组件从一个id派生出一个产品名称

const productId = 25; // whatever

const productName = useSelector(
  (state) =>
    state.dashboard.dashboards.filter(
      ({ Id }) => Id === productId
    )[0].Name
);
但是,我的选择器依赖于
productId
,我将其存储在同一文件中的变量中。我想将此
useSelector
调用存储在一个外部文件中,以便共享。我尝试了以下操作,但
id
未定义:

selectors.js

import { useSelector } from "react-redux";
import { getProductNameById } from "./selectors";

const productId = 25;
const productName = useSelector(getProductNameById, productId);
export const getProductNameById=(存储,id)=>{
return store.dashboard.dashboards.filter(({Id})=>Id==Id)[0]
名称
}
some_file.js

import { useSelector } from "react-redux";
import { getProductNameById } from "./selectors";

const productId = 25;
const productName = useSelector(getProductNameById, productId);

不幸的是,
选择器
函数只接受存储的状态作为参数。我会考虑用一种应对方法来解决这个问题:

export const getProductNameById = id => store => {
  return store.dashboard.dashboards.filter(({ Id }) => Id === id)[0]
    .Name;
}
一些文件

import { useSelector } from "react-redux";
import { getProductNameById } from "./selectors";

const productId = 25;
const productName = useSelector(getProductNameById(productId));

看起来这样做的方法是:

const productName = useSelector((state) => getProductNameById(state, productId));
这是ReduxDocs教程处理这个问题的方法。

这应该是公认的答案