반응형
축소자와 유형 스크립트 결합에서 "유형 인수를 'ReduersMapObject' 유형의 매개 변수에 할당할 수 없습니다." 오류를 반환합니다
나는 react + redux + typescript로 프론트엔드 환경을 설정하려고 하지만 combineReducers로 작동하기 위해 애를 먹고 있다. 오류가 발생했습니다. 유형의 인수를 'ReducersMapObject' 유형의 매개 변수에 할당할 수 없습니다. 코드 아래의 전체 오류 메시지를 참조하십시오.
상태: (유형/index.tsx)
export namespace StoreState {
export type Enthusiasm = {
languageName: string;
enthusiasmLevel: number;
}
export type All = {
enthusiasm: Enthusiasm
}
}
스토어: (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;
리듀서: (/리듀서/Hello리듀서.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;
}
}
콤바인 리듀서(/리듀서/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;
감속기만 사용하지 않고 의 내보내기를 모두 사용하여 개체를 전달합니다. 그것을 고치는 몇 가지 방법이 있습니다. 감속기를 선택할 수 있습니다:
const reducer = combineReducers<StoreState.All>({
enthusiasm: enthusiasmReducer.enthusiasm
});
또는 감속기만 가져옵니다:
import {enthusiasm} from './HelloReducer';
..
const reducer = combineReducers({enthusiasm});
또는 에 추가하고 가져오기를 변경합니다
import enthusiasmReducer from './HelloReducer';
나는 redux-perist와 함께 redux를 사용했을 때 비슷한 오류가 발생했다. 문제는 다음과 같습니다:
const reducers = combineReducers({
reducer1,
reducer2
})
const persistedReducers = persistCombineReducers({}, reducers)
알고 보니 환원제도 결합되어 있어서 이중 결합이 되어 있었습니다. 해결책은 결합된 환원제와 함께 사용하거나, 결합된 환원제를 직접 전달하고 사전 결합하지 않는 것입니다.
반응형
'개발하자' 카테고리의 다른 글
잘못된 for_each 인수로 테라폼 실패 / 지정된 "for_each" 인수 값이 적합하지 않습니다 (0) | 2023.06.27 |
---|---|
클러스터 IP 서비스가 있고 기본 nginx가 있는 kubernetes 수신 컨트롤러가 예상대로 작동하지 않음 (0) | 2023.06.26 |
HTTPS 포트를 열려면 Kubernetes 인스턴스 템플릿 변경 (0) | 2023.06.25 |
Python을 사용하여 PDF에서 고해상도 이미지 추출 (0) | 2023.06.25 |
gitlab에서 kubernetes 배포 상태 가져오기 (0) | 2023.06.24 |