You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native使用Redux Toolkit时dispatch reducer报错不是函数如何解决

问题解决方法

错误根源

你在createSlice配置中写错了核心字段名:将表示多个reducer映射的配置字段reducers(复数)误写为单数形式的reducer。
Redux Toolkit的createSlice API仅会识别reducers字段下定义的方法,自动生成对应的Action Creator。你写为单数reducer后,RTK没有生成setOrigin、setDestination等方法,navSlice.actions为空对象,自然导出的setOrigin是undefined,调用时就会报「不是函数」的错误。
IDE能跳转定义是因为你手动写了导出解构的代码,IDE静态解析时可以匹配到你写的变量名,并不代表运行时该方法真实存在。

修改方案

修改navSlice的配置字段即可:

export const navSlice = createSlice({
  name: "nav",
  initialState,
  // 这里把单数reducer改成复数reducers
  reducers: {
    setOrigin: (state, action) => {
      state.origin = action.payload;
    },
    setDestination: (state, action) => {
      state.destination = action.payload;
    },
    setTravelTimeInformation: (state, action) => {
      state.travelTimeInformation = action.payload;
    },
  },
});

修改后重启项目即可正常调用。

内容的提问来源于stack exchange,提问作者Brown_MV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:21:04