如果组件由HOC组成,则热重新加载将重新呈现所有页面

时间:2017-07-25 09:06:57

标签: reactjs typescript react-hot-loader

我正在尝试在typscript / react / react-router v4 / redux项目上设置热模块替换。我正在尝试使用react-hot-loader来保持反应组件状态。它适用于简单的组件,但是当我在组件上使用HOC时,它会停止工作(重新呈现所有应用程序而不是更改的位置),例如。 withRouter HOC:

import * as React from "react";
import * as ReactRouter from 'react-router';

export default ReactRouter.withRouter(class Test extends React.Component<undefined, undefined> {
    render() {
        return <div>:)</div>
    }
});

我在this文章中找到了一个解决方案,当你没有撰写时,它正在发挥作用。

import * as React from "react";
import * as ReactRouter from 'react-router';

class Test extends React.Component<undefined, undefined> {
    render() {
        return <div>:)</div>
    }
}

export default ReactRouter.withRouter(Test);

这是一个非常简单的例子,但这是一个糟糕的解决方案,因为我确实有许多地方组成了HOC,例如connect HOC将组件连接到redux商店和其他。这感觉不对,因为你必须默默地知道,你不能这样做,而其他人可能不知道。

我的问题是:是否有适当的解决方案可以使用react-hot-loader和特定的?

0 个答案:

没有答案