我正在尝试在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
和特定的?