TL;DR:在 React Native 中为 HMR 配置 Redux Toolkit 存储会在更改时正确刷新应用程序,但是reducer 行为不会改变!
如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 是非常容易的;然而,事实证明并非如此。
我也遇到了同样的问题,最后发现
wix/react-native-navigation
不能很好地与redux配合使用。我必须用反应导航替换它。希望这可能有所帮助。