[英]Cannot read properties of undefined (reading 'type'). Redux
所以,我正在嘗試在我的項目中設置 redux。 在 reducer 中出現了一個非常奇怪的問題:Uncaught TypeError: Cannot read properties of undefined (reading 'type')。 這是reducer.ts:
import { MarkerActionEnum, MarkerActions, MarkerState } from './types';
const initialState: MarkerState = {
data: undefined,
};
export function MarkerReducer(
action: MarkerActions,
state = initialState,
): MarkerState {
switch (action.type) {
case MarkerActionEnum.ADD_MARKER:
return {
...state,
data: action.payload,
};
case MarkerActionEnum.DELETE_MARKER: {
return { data: undefined };
}
default:
return state;
}
}
export default MarkerReducer;
和 types.ts 用於減速器:
import { Action } from 'redux';
import { MarkerType } from '../../pages/mapPage/components/CustomMap';
export interface MarkerState {
data: MarkerType | undefined;
}
export enum MarkerActionEnum {
ADD_MARKER = 'marker/ADD_MARKER',
DELETE_MARKER = 'marker/DELETE_MARKER',
}
export interface AddMarkerInterface
extends Action<MarkerActionEnum.ADD_MARKER> {
type: MarkerActionEnum.ADD_MARKER;
payload: { longitude: number; latitude: number };
}
export interface DeleteMarkerInterface
extends Action<MarkerActionEnum.DELETE_MARKER> {
type: MarkerActionEnum.DELETE_MARKER;
}
export type MarkerActions = AddMarkerInterface | DeleteMarkerInterface;
日志說問題發生在減速器的第 11 行,就在switch (action.type)
有沒有人知道或偶然發現這樣的事情?
我想說這意味着您已將其用作參數來dispatch
不是動作的東西,即沒有type
屬性。 例如,如果您有一個動作構建器並且忘記了括號,例如在dispatch(myActionBuilder)
而不是dispatch(myActionBuilder())
中。
我遇到過同樣的問題。 問題是參數的順序。 “狀態”應該是第一位的,“行動”應該是第二位的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.