React项目导入axios遇双错误求助:模块外import+找不到axios
解决React测试中axios相关的两个错误
1. 处理「Cannot find module 'axios'」错误
你的package.json依赖列表里没有axios,导致项目和测试套件都无法找到这个模块。执行命令安装axios:
npm install axios # 或使用yarn yarn add axios
安装完成后,package.json的dependencies会自动添加"axios": "^x.x.x"条目,模块即可被正常识别。
2. 处理「SyntaxError: Cannot use import statement outside a module」错误
这个错误一般是环境不支持ES模块语法导致,但你用的是create-react-app,react-scripts已经默认配置好ES模块支持。大概率是未安装axios引发的连锁报错,安装axios后重新运行测试即可解决。
如果安装后仍出现该错误,检查以下两点:
- 确保测试命令用的是
react-scripts test(你的package.json已配置),不要直接调用jest命令——create-react-app封装了jest的适配配置,直接调用会绕过这些配置。 - 不要手动创建或修改
jest.config.js这类自定义配置文件,保留create-react-app的默认配置即可。
额外修复:Login组件的axios调用问题
你的handleClick函数里,axios.get缺少await关键字,会直接返回Promise而非请求数据,修改如下:
const handleClick = async (e) => { e.preventDefault(); try { // 添加await等待请求完成 const { data } = await axios.get( 'https://jsonplaceholder.typicode.com/users/1' ); setUser(data); } catch { setError(true); } };
内容的提问来源于stack exchange,提问作者Vidushika Dasanayka
相关产品推荐
相关产品推荐

