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

React Native使用Reselect的createSelector报输入选择器为undefined如何解决

问题原因

报错提示你传入createSelector的输入选择器不是函数,是undefined,本质是你代码里的createCollection变量在传入createSelector时的值为undefined,常见触发场景如下:

  • 变量定义在块级作用域内,createSelector调用的作用域访问不到该变量
  • 项目存在循环导入,模块加载阶段createCollection还未完成初始化就被引用
  • 变量名拼写错误,或存在同名变量/导入覆盖了你的定义

解决方案

  1. 检查createCollection的定义位置,确保它和createSelector调用在同一作用域,且定义在调用之前,没有被其他同名变量/导入覆盖
  2. 排查循环依赖:如果当前selector文件和其他文件存在双向导入(比如当前文件导入了store配置文件,store配置文件又导入了当前文件的selector),把公共逻辑抽离到单独的文件解除循环依赖即可
  3. 你可以直接把输入选择器内联到createSelector参数中临时验证,代码如下:
import { createSelector } from 'reselect';

export const getCollectionName = createSelector(
  state => state.createCollection,
  (el) => el
);

如果内联写法没有报错,就可以确定是之前的createCollection变量引用异常,按照前两步排查即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:45:04