【问题标题】:preact compat causing component to mount infinitelypreact compat 导致组件无限安装
【发布时间】:2017-07-25 14:20:30
【问题描述】:

我有使用 redux 和 react 路由器的 reactjs 应用程序。 我想切换到preact。 当我将 webpack 配置更新为别名 react 和 react dom 时。 组件开始无限安装。它安装然后卸载..继续这样做。 Webpack 配置。

alias: {
        "react": path.resolve(__dirname, 'react.js'),
        "react-dom": path.resolve(__dirname, 'react.js')
        },

react.js

var preact = require('preact-compat');
var react = {};
Object.keys(preact).forEach(function(key) {
  react[key] = preact[key];
});

module.exports = react;

这个文件是因为我使用的是 react hot loader。 React 应用程序运行良好.. 但添加 preact 有错误。请指导我。

【问题讨论】:

  • 你为什么不使用the documented method 替换 React 和 ReactDOM?
  • 我已经这样做了.. 但它引起了另一个错误。我已经用上面的代码修复了。
  • 所以你通过引入另一个问题来解决一个问题。另一个错误是什么?
  • 未捕获的类型错误:无法设置只有 getter 的 # 的属性 createElement
  • 哦,是的,我记得我自己项目中的那个错误。我通过不将preact-compactreact-hot-loader 结合使用来解决它,因为(AFAIK)这两者不能一起工作。

标签: reactjs redux react-router preact


【解决方案1】:

根据我的经验,preact-compat 和 React Hot Loader (RHL) 不能很好地协同工作(它仍然在 preact-compact 的开发人员的 TODO 列表中,请参阅 this comment)。

我自己解决了这些问题,不将两者结合起来,即当我想使用 RHL 时使用“真正的”React 和 ReactDOM,或者当我不需要 RHL 时使用 preact-compat

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多