2
我試圖創建一個簡單的反應,終極版,Ajax的例子,下面Reddit API tutorial,但我得到這個錯誤:陣營+終極版 - 未捕獲的錯誤:操作可能沒有未定義的「類型」屬性
Uncaught Error: Actions may not have an undefined "type" property. Have you misspelled a constant?
該錯誤是由拋出:
dispatch(fetchProducts(this.props));
在App.jsx
index.jsx
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import { compose, createStore, applyMiddleware } from 'redux'
import { Provider } from 'react-redux';
import thunkMiddleware from 'redux-thunk';
import createLogger from 'redux-logger';
import { createDevTools, persistState} from 'redux-devtools';
import DevTools from './DevTools.jsx';
import App from './App.jsx';
import rootReducer from './reducers.js';
const loggerMiddleware = createLogger();
function configureStore(initialState) {
return createStore(
rootReducer,
initialState,
DevTools.instrument(),
applyMiddleware(
thunkMiddleware,
loggerMiddleware
),
// Lets you write ?debug_session=<name> in address bar to persist debug sessions
persistState(window.location.href.match(/[?&]debug_session=([^&]+)\b/))
)
}
const store = configureStore();
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>, document.getElementsByClassName('products')[0]);
請儘量將您提供的代碼縮小到您認爲相關的區域 - 這很難通讀一個問題中的整個應用程序。至於你的問題,看起來你正在導入redux-thunk作爲一個命名導入,當它應該是一個默認的導入,例如, '從'redux-thunk'中導入thunkMiddleware。 –
@ShaneCavaliere感謝您的迴應。我編輯了我的問題,並試圖減少我的問題中的代碼(我是新的redux)。我改變了'thunkMiddleware'作爲默認導入,但它沒有幫助。 – Matt
根據文檔:createStore(reducer,[initialState],[enhancer]),中間件需要成爲createStore的第三個參數,而不是第四個參數。嘗試刪除開發工具注入。 – lux