2017-07-29 74 views
0

我有奇怪的錯誤。導入的還原結果未定義

當我嘗試導入終極版是這樣的:

import Redux from 'redux' 

,當我嘗試去安慰它

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

它給了我終極版是不確定的。

我使用webpack與babel loader,所有標準配置,沒有什麼看起來不對。我也刪除了所有模塊並重新添加它們,但仍然有同樣的結果。現在我的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,它工作正常。

=========編輯========

爲吉拉德的答案,做這樣的工作

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

但爲什麼我不能這樣做這種方式:

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

後者給了我 「不能讀取屬性未定義 'createStore'」

=========更多修改========

我只是看看終極版的源代碼,它是寫在打字稿並沒有「出口默認」或「導出爲命名空間」,這可能是爲什麼我不能使用

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

糾正我,如果我錯了。

請幫忙。

謝謝

回答

0

你的配置沒問題。

而不是使用import Redux from 'redux',而例如使用Redux.createSore,你可以使用:import { createStore } from 'redux'然後直接調用createStore

combineReducers和其他任何函數redux暴露相同。

+0

感謝您的快速回復吉拉德。你的解決方案沒有問題。我剛剛更新了我的問題,爲什麼我無法使用上面顯示的第二種方法實現相同的功能? – trenunu

+0

你是對的,這是因爲redux沒有默認導出 –