Nicht sicher, warum ich die folgenden Fehler erhalte.
Ich richte gerade meinen Laden ein, Aktionen und Reduzierungen, ich habe noch nichts angerufen.
Erwartet
App läuft einwandfrei, Redux-Status wird nicht aktualisiert
Ergebnisse
src / index.jsimport React from "react"
import ReactDOM from "react-dom"
import { createStore, applyMiddleware, compose } from "redux"
import { Provider } from "react-redux"
import thunk from "redux-thunk"
import reducer from "./reducer"
import App from "./App"
import css from "./coinhover.scss"
const element = document.getElementById("coinhover");
const store = createStore(reducer, compose(
applyMiddleware(thunk),
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
));
ReactDOM.render(
<Provider store={ store }>
<App />
</Provider>, element);
src / reducer / index.js
import { combineReducers } from "redux"
import { coins } from "./coins"
export default combineReducers({
coins
});
src / reducer / actions / coins.js
import * as api from "../../services/api"
import { storage, addToPortfolio } from "../../services/coinFactory"
export const ADD_COIN = "ADD_COIN"
export function getCoin(coin) {
return dispatch => {
api.getCoin(coin)
.then((res_coin) => addToPortfolio(res_coin))
.then((portfolio) => dispatch(updatePortfolio(portfolio)));
}
}
export function updatePortfolio(portfolio) {
return {
type: ADD_COIN,
portfolio
}
}
endlich src / reducer / coins / index.js
import { ADD_COIN } from "./actions"
const initialState = [];
export default (state = initialState, action) => {
switch(action.type) {
case ADD_COIN:
return action.portfolio;
default:
return state;
}
}
Antworten:
36 für die Antwort № 1Ihr Problem liegt darin, wie Sie Ihre importieren coins
Minderer:
import { coins } from "./coins"
Letzterer versucht, einen benannten Export zu erhalten, der aus der Datei in ./coins zurückgegeben wird.
Sie verwenden keine benannten Exporte nur export default
Daher müssen Sie die Datei nur wie folgt importieren:
import coins from "./coins";
Die Verwendung des letzteren führt dazu, dass coins
wird dann den Wert von enthalten export default
; Das wird der Münzreduzierer sein.
3 für die Antwort № 2
Ich habe es gerade gefunden, ich habe meinen Münzreduzierer falsch importiert ...
import { combineReducers } from "redux"
import coins from "./coins" // because I have coins/index.js
export default combineReducers({
coins
});
Anstatt von
import { coins } from "./coins"