【问题标题】:import of redux results in undefined导入 redux 导致未定义
【发布时间】:2018-01-05 08:19:32
【问题描述】:

我遇到了奇怪的错误。

当我尝试像这样导入 redux 时:

import Redux from 'redux'

当我试图安慰它时

console.log('Redux is', Redux);

它告诉我 Redux 是未定义的。

我正在使用带有 babel loader 的 webpack,所有标准配置,似乎没有任何问题。我还纱线删除了所有模块并重新添加它们,仍然得到相同的东西。现在我的 index.js 很简单,如下所示:

import Redux from 'redux';
console.log('Redux is ', Redux);

我的 webpack 配置如下:'

module.exports = {
  devtool: 'inline-source-map',
  entry: ['./src/index.jsx', 'babel-polyfill'],
  output: {
      path: path.resolve('dist'),
      filename: 'bundle.js',
      publicPath: '/',
  },
  resolve: {
     extensions: ['.js', '.jsx'],
  },
  module: {
      rules: [
        {
          test: /\.jsx?$/,
            use: {
            loader: 'babel-loader',
          },
          include: __dirname,
          exclude: /node_modules/,
        }
      ],
  },
  devServer: {
    historyApiFallback: true,
  },
  plugins: [HtmlWebpackPluginConfig],
};

我正在使用纱线。下面是我的 package.json

"dependencies": {
    "redux": "^3.7.2"
},
"devDependencies": {
    "babel-cli": "^6.24.1",
    "babel-core": "^6.25.0",
    "babel-loader": "^7.1.1",
    "babel-polyfill": "^6.23.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-2": "^6.24.1",
    "html-webpack-plugin": "^2.29.0",
    "path": "^0.12.7",
    "webpack": "^3.4.1",
    "webpack-dev-server": "^2.6.1"
},

如果我通过在 index.html 上添加脚本标签来切换使用 CDN,它可以正常工作。

=========编辑=========

正如 Gilad 的回答,这样做是可行的

import { createStore } from redux;
// do stuff with createStore

但为什么我不能这样做:

import Redux from 'redux';
const { createStore } = Redux;

后一个给我“无法读取未定义的属性'createStore'”

=========更多编辑========

我刚刚看了redux的源码,它是用打字稿写的,没有“导出默认”或“导出为命名空间”,这可能是我不能使用的原因

import Redux from 'redux';
const { createStore } = Redux; 

如果我错了,请纠正我。

请帮忙。

谢谢

【问题讨论】:

    标签: reactjs webpack redux babeljs


    【解决方案1】:

    你的配置没问题。

    不使用import Redux from 'redux',例如使用Redux.createSore,您可以使用:import { createStore } from 'redux',然后直接调用createStore

    combineReducers 和 redux 公开的任何其他函数也是如此。

    【讨论】:

    • 感谢您的快速回复吉拉德。您的解决方案确实运行良好。我刚刚更新了我的问题,为什么我不能使用上面显示的第二种方法来达到同样的效果?
    • 你说得对,是因为redux没有默认导出
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多