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

Redux中createStore已弃用,寻求替代实现方案

替代Redux弃用的createStore的方案

Redux的createStore API已被官方弃用,目前推荐两种替代方案,优先选择Redux Toolkit(RTK)的configureStore(官方最佳实践),也可使用兼容APIlegacy_createStore作为临时过渡。

方案一:使用Redux Toolkit的configureStore(推荐)

Redux Toolkit是Redux官方推出的工具集,内置了combineReducers、thunk中间件、DevTools集成等功能,大幅简化代码并遵循最佳实践。

1. 安装依赖

如果还未安装Redux Toolkit,执行以下命令:

npm install @reduxjs/toolkit react-redux
# 或使用yarn
yarn add @reduxjs/toolkit react-redux

2. 修改store.js

替换原有的createStore实现,使用configureStore:

import { configureStore } from '@reduxjs/toolkit';
// 导入你的reducers(示例:import counterReducer from './counterSlice')

export const store = configureStore({
  reducer: {
    // 在这里挂载你的reducers,格式:[slice名称]: [reducer函数]
    // 示例:counter: counterReducer
  },
  // 如需添加自定义中间件,可通过以下方式扩展默认中间件(默认已包含thunk)
  // middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(yourCustomMiddleware)
});

export default store;

3. 修正index.js的React渲染逻辑(React 18+)

原代码中的React.render是React 17及以下的写法,React 18需改用createRoot:

import React from 'react';
import ReactDOM from 'react-dom/client';
import { Provider } from 'react-redux';
import store from './store';
import './bootstrap.min.css';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <Provider store={store}>
      <App />
    </Provider>
  </React.StrictMode>
);

reportWebVitals();

方案二:使用兼容API legacy_createStore(不推荐)

若暂时不想迁移到RTK,可使用Redux保留的兼容APIlegacy_createStore,仅需替换原代码中的createStore:

import { legacy_createStore, combineReducers, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import { composeWithDevTools } from 'redux-devtools-extension';

const reducer = combineReducers({});
const initialState = {};
const middleware = [thunk];

const store = legacy_createStore(
  reducer,
  initialState, 
  composeWithDevTools(applyMiddleware(...middleware))
);

export default store;

注意:此方案仅为临时兼容,官方强烈建议迁移到Redux Toolkit以获得更好的开发体验和代码可维护性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:50:28