reactjs - Redux 在开发中工作,似乎在生产中中断

标签 reactjs typescript webpack redux electron

我有一个包含 React + Redux 应用程序的 Electron 桌面应用程序。 Redux 在开发中本地运行应用程序时工作正常,但一旦应用程序构建为 native 桌面应用程序就不会更新组件。

许多文章和问题似乎认为商店配置不正确,或者我是直接改变状态而不是更新状态,或者我的 mapStateToProps 函数设置不正确。

我看不出这些怎么会是个问题,因为我的应用程序在开发过程中可以正常工作,而且我可以看到商店已更新并且组件已重新呈现。

但在生产中,会发生以下情况:

  • 商店状态已初始化
  • 一个 Action 被调度
  • 状态更新(我可以在开发工具中看到)
  • 我的连接组件都没有使用更新的 Prop 重新渲染。

我能看到开发和生产之间的唯一区别是,在 Electron 中,在开发期间,应用程序通过 http://localhost 加载,而在生产期间,它通过 file 加载:///

我的商店配置为:

export const store = createStore(rootReducer, composeWithDevTools(applyMiddleware(thunk)));

商店提供为:

<Provider store={store}>
    <App />
</Provider>

我正在将我的组件连接到商店:

const mapStateToProps = (state: RootState) => {
    return {
        hasLoaded: state.products.hasLoaded,
        products: state.products.products
    };
};

const mapDispatchToProps = {
    getProducts: getProducts
};

export default connect(
    mapStateToProps,
    mapDispatchToProps
)(ProductsList);

然后从组件内部调用 getProducts,如:

componentDidMount() {
    this.props.getProducts();
}

我希望使用检索到的产品更新状态,然后组件应该使用更新后的商店状态作为 Prop 重新呈现。

相反,商店状态被更新 - as I can see it in Redux DevTools - 但连接的组件永远不会重新呈现,也不会调用 componentDidUpdate

最佳答案

我花了很多天的时间和你一样的感受和问题。在生产中检测到 redux 的订阅功能仍然有效,但 react-redux 无法正常连接后,我尝试降级并成功。

关于reactjs - Redux 在开发中工作,似乎在生产中中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55637288/

相关文章:

javascript - react ,webpack : avoid ".." in import statements

javascript - 为什么ES6中的map函数不刷新?

reactjs - 有没有办法使用本地文件离线运行 create-react-app?

angularjs - Angular 2 : PrimeNG - XHR error (404 Not Found)

JavaScript 构造函数调用

typescript - 忽略 Webpack-dev-server 中的 Typescript 错误

javascript - webpack 看不到绝对路径

css - 更改 react 表中的列宽

reactjs - 如何在material ui select中显示renderValue以外的值

typescript + Vue : What return Type to use for an object that contains a reactive() and ref() variable?