如何在React Redux函数中传递动态company参数
React Redux中为getAllEntities函数的company字段传递动态值
当前代码里getAllEntities的company字段被硬编码为'tcs',以下是几种实现动态传递的方案:
方案1:让getAllEntities接收company参数
直接修改函数,接收外部传入的company值:
const getAllEntities = (company) => { dispatch( getEntities({ page: paginationState.activePage - 1, size: paginationState.itemsPerPage, sort: `${paginationState.sort},${paginationState.order}`, company: company, }) ); }; // 调用示例: // getAllEntities('infosys'); // getAllEntities('accenture');
方案2:使用组件本地状态或props中的company值
如果company值来自组件本地状态或父组件props,直接引用即可:
// 假设组件内有本地状态:const [company, setCompany] = useState('tcs'); // 或来自props:const { company } = props; const getAllEntities = () => { dispatch( getEntities({ page: paginationState.activePage - 1, size: paginationState.itemsPerPage, sort: `${paginationState.sort},${paginationState.order}`, company: company, }) ); };
方案3:从Redux Store中获取company值
如果company值存储在Redux的其他状态切片(比如用户信息)里,用useSelector读取:
import { useSelector } from 'react-redux'; // 从store中读取company值 const userCompany = useSelector(state => state.user.company); const getAllEntities = () => { dispatch( getEntities({ page: paginationState.activePage - 1, size: paginationState.itemsPerPage, sort: `${paginationState.sort},${paginationState.order}`, company: userCompany, }) ); };
注:确保
IQueryParams类型定义中company字段的类型符合使用场景(比如字符串类型),当前代码里的getEntities异步Thunk已经支持接收该参数,无需额外修改。
内容的提问来源于stack exchange,提问作者Prisha Yadav
相关产品推荐
相关产品推荐

