Reducer 不是函数。反应原生 Redux

Reducer is not a function. React Native Redux

我正在尝试向我的 React 本机应用程序添加一个 reducer。 这是存储常量:

export const USER_PROFILE = 'USER_PROFILE';

这里是action.js

import {USER_PROFILE} from '../constants/index';

export function userProfile(userReducer) {
  return {
    type: USER_PROFILE,
    payload: {
      email: '',
    },
  };
}

这是导致错误的 userReducer。我一直收到 customerReducer is not a function 的错误。

import {USER_PROFILE} from '../constants/index';

const initialState = {
  userProfile: '',
};

const customerReducer = (state = initialState, action) => {
  switch (action.type) {
    case USER_PROFILE:
      return {
        ...state,
        userProfile: action.payload,
      };
    default:
      return state;
  }
};

export default customerReducer;

并且我已将电子邮件声明为状态...const [email, setEmail] useState('')

在这里调用reducer。 const customerReducer = useSelector(state => state.userProfile); 现在使用 useDispatch 方法调度它。

const dispatch = useDispatch();
...
dispatch(customerReducer(email));

您的 action.js 应该看起来像这样:

import {USER_PROFILE} from '../constants/index';

export function userProfile(userReducer) {
  return {
    type: USER_PROFILE,
    payload: {
      email: userReducer.email,
    },
  };

并且当您发送时,您应该使用操作“userProfile”而不是缩减器“customerReducer”。您的调度应该看起来像这样:

dispatch(userProfile({email}));

确保使用大括号。因为你应该传递一个对象而不是一个字符串。