【问题标题】:Axios is not definedaxios 没有定义
【发布时间】:2017-06-03 08:53:12
【问题描述】:

我正在使用 axios 使用 React.js 构建一个简单的天气应用程序。我刚刚完成了代码,但是有一个问题。当我启动该应用程序时,它根本无法运行,并且我看到一个显示为 axios is not defined 的参考错误。

这是我的 webpack.config.js 文件:

module.exports = {
    entry: './public/app/app.jsx',
    output: {
        path: __dirname,
        filename: './public/js/bundle.js'
    },
    externals: ['axios'],
    resolve: {
        root: __dirname,
        alias: {
            OpenWeatherMap: 'public/components/OpenWeatherMap.jsx',
            Main: 'public/components/Main.jsx',
            Nav: 'public/components/Nav.jsx',
            Weather: 'public/components/Weather.jsx',
            WeatherForm: 'public/components/WeatherForm.jsx',
            WeatherMessage: 'public/components/WeatherMessage.jsx',
            About: 'public/components/About.jsx'
        },
        extensions: ['', '.js', '.jsx']
    },
    module: {
        loaders: [{
            loader: 'babel-loader',
            query: {
                presets: ['react','es2015', 'stage-0']
            },
            test: /\.jsx?$/,
            exclude: /(node_modules|bower_components)/
        },{
            loader: 'json-loader',
            test: /\.json?$/
        }]
    }
};

和 package.json 文件:

{
  "name": "weather",
  "version": "1.0.0",
  "description": "Simple Weather App",
  "main": "ext.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Milad Fattahi",
  "license": "ISC",
  "dependencies": {
    "axios": "^0.16.1",
    "express": "^4.15.3",
    "json": "^9.0.6",
    "json-loader": "^0.5.4",
    "react": "^15.5.4",
    "react-dom": "^15.5.4",
    "react-router": "^4.1.1",
    "react-router-dom": "^4.1.1"
  },
  "devDependencies": {
    "babel-core": "^6.5.1",
    "babel-loader": "^6.2.2",
    "babel-preset-es2015": "^6.5.0",
    "babel-preset-react": "^6.5.0",
    "babel-preset-stage-0": "^6.24.1",
    "webpack": "^1.12.13"
  }
}

【问题讨论】:

  • 那么你使用 axios 的什么文件,你没有导入它?
  • 我只在 OpenWeatherMap.jsx 文件中使用 axios,并在该文件中导入了 axios。
  • 能分享一下导入声明吗
  • 我尝试了import axios from 'axios'var axios = require('axios'),但没有任何改变。
  • 尝试从你的 webpack.config 中删除 externals: ['axios'],

标签: reactjs axios


【解决方案1】:

我知道这可能看起来很明显,但请确保文件顶部有对正确 axios 的引用或安装它 https://www.npmjs.com/package/axios

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

【讨论】:

  • 我已经用 npm 安装了 axios,现在它可以正常工作了。我唯一的错误是将 axios 从 webpack 构建中排除。
  • 我遇到了同样的问题,直到我将脚本标签放在所有代码之上。完全有道理,因为我在定义之前就调用了 axios。感谢您的贡献!
  • 这很明显,但也很有帮助。有时我会很傻,忘记一些事情。谢谢它遐想
【解决方案2】:

我忘记导入 axios。我在脚本顶部添加了:

import axios from 'axios';

我也忘了安装 axios。我通过 npm 安装了 axios:

npm i axios --global 
// --global flags will save you the stress of insstalling axios again.

这解决了我的错误。

【讨论】:

  • --全局安装axios可以添加global
  • 谢谢。这是正确的。我也忘记了。 微笑
  • 我正在使用 --global 安装,但它没有解决我的问题,没有 --global 它可以工作
【解决方案3】:

我认为首先你必须安装 npm install axios --save 然后将其导入 app.js 文件中

import axios from "axios";

【讨论】:

    【解决方案4】:

    您可以在 javascript 文件的顶部添加:

    const axios = require('axios').default;
    

    【讨论】:

      【解决方案5】:

      https://unpkg.com/axios/dist/axios.min.js

      查看 npm 站点是否更改 https://www.npmjs.com/package/axios

      然后我从我的 js 中删除了以下行...

      const axios = require('axios')
      

      我没有更多问题了!

      【讨论】:

        【解决方案6】:

        接受的答案包括三个主要补救措施,但还有第四个潜在补救措施。我将重复已经引用的内容以完成

        补救措施 1

        在项目根目录下,安装Axios:

        npm i axios --global 
        

        补救措施 2

        在使用axios的.js文件中,导入axios:

        import axios from 'axios';
        

        补救措施 3

        从您的webpack.config 中删除externals: ['axios']

        补救措施 4

        您不是从拼写/大小写错误开始调用 axios。你可能会打电话给await Axios,而不是正确的电话await axios

        this 这样的一些教程会使案例拼写错误,这会给毫无戒心的新手带来极大的痛苦

        【讨论】:

          【解决方案7】:

          第一阶段: 使用终端或 CMD 安装 Axios:

          npm install axios --global
          

          第二阶段: 将库导入您的 .js

          import axios from 'axios'; 
          

          【讨论】:

            猜你喜欢
            • 2019-04-05
            • 2022-01-26
            • 2018-12-24
            • 2019-06-13
            • 2018-03-22
            • 1970-01-01
            • 2017-09-27
            • 2017-08-27
            • 2022-11-20
            相关资源
            最近更新 更多