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

使用Redux Toolkit开发时出现store is undefined报错如何解决?

问题解决方案

以下是对应问题的修复步骤:

  • 根组件未包裹Redux Provider导致store未注入
    这是报Store is Undefined的核心原因,你需要在项目入口文件(通常是src/index.js)中用Provider组件包裹你的整个应用,将创建好的store传入:
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'
import { Provider } from 'react-redux'
import store from './redux/store' // 替换为你实际的store文件路径

const root = ReactDOM.createRoot(document.getElementById('root'))
root.render(
  <Provider store={store}>
    <App />
  </Provider>
)
  • 存入store的接口数据格式错误
    你现在直接把axios返回的完整response对象存入了store,而接口返回的帖子列表实际存放在response.data中,调整Posts组件的请求逻辑:
axios.get("https://jsonplaceholder.typicode.com/posts")
  .then((response) => {
    console.log("fetched");
    dispatch(setPosts(response.data)); // 只把帖子数组存入store
  })
  .catch((e) => console.log(e));
  • 渲染判断条件错误+缺少依赖导入
    首先你需要在Posts组件顶部导入useEffect:
import React, { useEffect } from 'react'

其次你注释的渲染代码判断逻辑写反了,!posts会在posts不存在的时候才执行遍历,直接触发报错。调整渲染逻辑如下:

{posts.length > 0 && posts.map((post) => (
  <Col
    xs={3}
    style={{
      margin: "15px",
      cursor: "pointer",
      border: "1px black solid",
    }}
    key={post.id} // 必须添加key属性避免React警告
  >
    <div className="post__data">
      <img alt="image" src={img} />
      {post.title}
      <Link to={"/post/" + post.id}>See more</Link>
    </div>
  </Col>
))}
  • 补充:检查userSlice文件顶部是否导入了createSlice
    如果你的userSlice代码没加导入语句,需要在第一行添加:
import { createSlice } from "@reduxjs/toolkit";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 01:30:04