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

如何修复Redux报错:"Expected the root reducer to be a function. Instead, received: ''"

Redux配置报错修复方案

你遇到的Redux报错核心原因是likeSlice.js中的导出语法错误,以下是具体修复步骤:

错误定位

在likeSlice.js的最后一行,你写了:

export default {likeReducer} = likeSlice.reducer;

这是完全错误的语法,既不是正确的默认导出写法,也不符合对象解构赋值规则,导致store.js无法正确导入likeReducer,进而引发Redux初始化报错。

修正后的likeSlice.js代码

import { createSlice } from "@reduxjs/toolkit";

const likeSlice = createSlice({
  name: 'likes',
  initialState: {
    posts: [],
  },
  reducers: {
    addPost: (state, action) => {
      state.posts = [...state.posts, action.payload];
    },
    removePost: (state, action) => {
      state.posts = state.posts.filter(post => post !== action.payload);
    },
  },
})

export const {addPost, removePost} = likeSlice.actions;

// 正确的默认导出:直接导出reducer
export default likeSlice.reducer;

额外说明

  • 你提到其他同配置项目正常,是因为那些项目的slice导出语法正确,这个错误是当前代码特有的笔误。
  • 如果修复后Expo Snack仍报错,建议尝试清除Snack的缓存(比如刷新页面、重新加载项目),Expo Snack确实偶尔会有缓存导致的异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:52:29