javascript - 反应的codepen错误
问题描述
我的 codepen 出现错误 ReferenceError: require is not defined 我已经从 react-intersection-observer@5.0.5/dist/react-intersection-observer.cjs.js 导入了 intersection-observer: codepen 链接
class AdImpression extends React.Component {
state = {
tracked: '',
};
handleChange = event => {
if (event.isIntersecting && event.intersectionRatio >= 0.5) {
this.recordedTimeout = setTimeout(() => {
this.setState({ tracked: 'ad--tracked' });
}, 1000);
return;
}
clearTimeout(this.recordedTimeout);
};
render() {
return (
<Observer onChange={this.handleChange} threshold={0.5}>
<div className={`ad ${this.state.tracked}`} />
</Observer>
);
}
}
class ImpressionTracking extends React.Component {
render() {
return (
<div>
<div className="header visible">Criteria: 50% visible pixels + 1 continuous sec</div>
<div className="body body--center">
<AdImpression index={1} />
<AdImpression index={2} />
<AdImpression index={3} />
</div>
</div>
);
}
}
解决方案
您需要使用该软件包的umd版本。在文件名中,cjs代表需要全局范围内的函数的common js 。当 * esm* 用于 es6 模块时, umd将尝试猜测可用的内容,您需要使用 codepen 的“添加模块”功能。require
推荐阅读
- windows - SetWindowPlacement 触发的 WM_DPICHANGED 不正确
- android - Kotlin 协程未解决的参考:onComplete
- arrays - Array.push() 在静态和动态数组中的复杂性
- c# - sbyte 和 if 运算符
- python - 有什么方法可以更改模块创建者的名称吗?
- c++ - 为什么 Format_MonoLSB 绘制错误?
- junit - Jira Xray 缺少结果输出
- node.js - Heroku 部署失败...我不明白发生了什么
- python - 字符串上的正则表达式,可能以逗号分隔,也可能不以逗号分隔
- ansible - Ansible 过滤器以查找具有指定名称的所有列表