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

使用Formik+Redux提交表单时出现找不到crypto变量的错误

解决ReferenceError: Can't find variable: crypto错误

这个错误是因为你使用的nanoid库默认依赖浏览器/Node.js的crypto全局API生成随机ID,但你的运行环境(比如React Native)未提供该全局对象,导致提交表单时触发报错。

以下是两种可行的解决方案:

方案一:使用非安全兼容版nanoid

如果生成的ID不需要极高安全性(仅用于客户端本地标识场景),可以直接使用nanoid的非安全版本,它不依赖crypto模块:

  1. 修改导入语句:
import { nanoid } from 'nanoid/non-secure';
  1. 原有提交逻辑无需改动,重新提交即可正常生成ID。

方案二:补充crypto环境支持

如果需要保留安全版本的nanoid,需手动为环境添加crypto实现(以React Native为例):

  1. 安装依赖包:
npm install react-native-get-random-values
  1. 在项目入口文件(如App.js)最顶部导入该包:
import 'react-native-get-random-values';
  1. 之后正常使用原版nanoid即可,无需修改提交逻辑。

修改完成后重新提交表单,crypto相关错误会消失,Redux store也能正常接收帖子数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 18:42:05