/ / React-Redux - Für wichtige „Münzen“ wird kein Reduzierer bereitgestellt - Javascript, Reactjs, Redux, React-Redux

React-Redux - Keine Reduzierung für Schlüsselmünzen vorgesehen - Javascript, Reactjs, Redux, React-Redux

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

Bildbeschreibung hier eingeben

src / index.js
import 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 № 1

Ihr 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 defaultDaher 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"