【发布时间】:2020-01-11 15:55:24
【问题描述】:
我正在使用框架 gatsby 开发一个小网站,但我在动态导入和 webpack 提供的热重载方面遇到了困难。
这是我的反应组件:
import React from 'react'
import styles from './_frame.module.scss'
class Frame extends React.Component {
constructor(props) {
super(props);
this.frame = React.createRef();
}
render() {
return (
<div className={styles.frame}
ref={this.frame}>
<div className="inner wrap--redux">
<canvas className={styles.canvas}
id="canvas"
width="800"
height="600">
</canvas>
</div>
</div>
);
}
componentDidMount() {
import(`../../experiments/${this.props.slug}`)
.then(res => {
new res.default(this.frame.current);
});
}
};
export default Frame
我希望当我对导入的 JavaScript 进行修改时,热重载会触发并刷新我的组件。目前我必须手动刷新浏览器才能观察所做的更改。
您可以在此处查看整个存储库:https://github.com/maximeparisse/webgl-journey
以及从中提取代码的文件: https://github.com/maximeparisse/webgl-journey/blob/master/src/components/experiments/frame.js
如果你只想复制 - git克隆存储库 -npm 我 - 盖茨比开发
感谢您的帮助。
【问题讨论】:
-
点赞只是为了方便复制,最近很少见
-
会不会是生命周期方法的问题?据我所知,
componentDidMount在初始渲染时只被调用一次。
标签: javascript webpack gatsby dynamic-import hot-reload