You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中如何封装useSelector获取的变量并跨文件导入使用

实现方案

由于你用到了Redux的useSelector Hook,按照React Hook的使用规则,Hook只能在React函数组件或者其他自定义Hook内部调用,因此你不能直接导出三个普通变量,封装成自定义Hook即可实现逻辑复用:

步骤1:新建单独的封装文件

你可以创建src/hooks/useCompanyInfo.js文件,写入如下代码:

import { useSelector } from 'react-redux'

export default function useCompanyInfo() {
  const companyValue = useSelector((state) => state.changeCompanyReducer.company);
  const selectionValueArray = Object.values(companyValue);
  const companyCode = selectionValueArray[0];
  const employeeId = selectionValueArray[1];
  return {
    selectionValueArray,
    companyCode,
    employeeId
  }
}

步骤2:在业务场景中引入使用

在任意需要用到对应值的React函数组件内,直接引入调用该自定义Hook即可:

import useCompanyInfo from '@/hooks/useCompanyInfo'

function YourBusinessComponent() {
  // 解构拿到三个变量,直接使用即可
  const { selectionValueArray, companyCode, employeeId } = useCompanyInfo()
  return <div>企业编码:{companyCode}</div>
}

注意:不要在普通JS文件的非组件/非Hook环境调用这个自定义Hook,否则会触发Hook调用规则报错。如果你需要在非组件环境获取这三个值,可以直接引入Redux的store实例,通过store.getState()方法直接读取对应state做计算即可。

内容的提问来源于stack exchange,提问作者Chinmayee Sahoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:24:08