Ich versuche, eine Front-End-Umgebung mit react + redux + typescript einzurichten, aber ich habe Probleme, damit es funktioniert Mähdrescher. Ich erhalte einen Fehler: Das Argument des Typs ist nicht dem Parameter 'ReducersMapObject' zuweisbar. Siehe die vollständige Fehlermeldung unter dem Code.CombineReducers mit Typescript gibt Fehler "Argument des Typs ist nicht zu Parameter vom Typ 'ReducersMapObject'"
STATE: (types/index.tsx)
export namespace StoreState {
export type Enthusiasm = {
languageName: string;
enthusiasmLevel: number;
}
export type All = {
enthusiasm: Enthusiasm
}
}
STORE: (store.tsx)
import { createStore } from 'redux';
import reducers from './reducers/index';
import { StoreState } from './types/index';
let devtools: any = window['devToolsExtension'] ? window['devToolsExtension']() : (f:any)=>f;
const Store = createStore<StoreState.All>(reducers, devtools);
export default Store;
REDUZIERER: (/reducers/HelloReducer.tsx)
import { EnthusiasmAction } from '../actions';
import { StoreState } from '../types/index';
import { INCREMENT_ENTHUSIASM, DECREMENT_ENTHUSIASM } from '../constants/index';
export const enthusiasm = (state: StoreState.Enthusiasm, action: EnthusiasmAction): StoreState.Enthusiasm => {
switch (action.type) {
case INCREMENT_ENTHUSIASM:
return { ...state, enthusiasmLevel: state.enthusiasmLevel + 1 };
case DECREMENT_ENTHUSIASM:
return { ...state, enthusiasmLevel: Math.max(1, state.enthusiasmLevel - 1) };
default:
return state;
} }
VERKNÜPFUNG REDUCERS (/reducers/index.tsx)
import { StoreState } from '../types/index';
import * as enthusiasmReducer from './HelloReducer';
import { combineReducers } from 'redux';
const reducer = combineReducers<StoreState.All>({
enthusiasm: enthusiasmReducer
});
export default reducer;
Ja ändern! Du hast recht. Ich bin ziemlich neu in Reaktion :) Danke! – podeig