首页 > 解决方案 > React Native 中的 Redux Toolkit HMR 不会更新 reducer

问题描述

TL;DR:在 React Native 中为 HMR 配置 Redux Toolkit 存储可以正确刷新应用程序的更改,减速器的行为不会改变!

React Native 重新加载公告中可以看出,React Native中的 Redux 支持 HMR,但列出的步骤似乎不再起作用。我已经配置了公告中提到的所有内容;但是,reducer 重新加载实际上似乎并没有改变任何东西。当我编辑减速器时,应用程序会更新(重新加载通知),但减速器的行为不会改变!

// store/rootReducer.js
import { combineReducers } from "@reduxjs/toolkit";
import eventsReducer from "./slices/events";
import peopleReducer from "./slices/people";

const rootReducer = combineReducers({
  events: eventsReducer,
  people: peopleReducer,
});

export default rootReducer;

// store/index.js
import { configureStore } from "@reduxjs/toolkit";
import rootReducer from "./rootReducer";

const store = configureStore({
  reducer: rootReducer,
});

if (process.env.NODE_ENV === "development" && module.hot) {
  module.hot.accept(() => {
    const newRootReducer = require("./rootReducer").default;
    store.replaceReducer(newRootReducer);
  });
}

export default store;
// App.js
import React from "react";
import { Provider } from "react-redux";
import store from "./store";

const App = () => {
  return (
    <Provider store={store}>
      // ...ThemeProvider, Navigation scenes, etc
    </Provider>
  );
};

export default registerRootComponent(App);

任何想法为什么会发生这种情况?我一直在寻找相关问题,但找不到最近(即今年)的任何内容。任何较旧的问题也不起作用。我的理解是我不必处理 App HMR,因为这是由 React Native 自动处理的。上面的公告表明,在 React Native 中将 HMR 添加到 Redux 非常容易;然而,事实证明并非如此。

标签: javascriptreactjsreact-nativereduxredux-toolkit

解决方案


推荐阅读