[英]Javascript error "_ not defined" with lodash and wordpress
我的 wordpress 页面有问题 - 因为我总是收到这个 JS 错误:
Uncaught ReferenceError: _ is not defined
它所指的代码行是 _.noConflict(); 下面的声明。 然而,正如你所看到的,lodash 刚刚加载到它的正上方,并且应该提供了 _ 变量。 任何想法为什么会这样?
<script type='text/javascript' defer src='https://website.com/wp-includes/js/dist/vendor/lodash.min.js'></script>
<script type='text/javascript'>
window.lodash = _.noConflict();
</script>
我很感激任何提示
您正在加载 lodash deferred,这意味着它会等待加载,但您正在尝试立即使用它。 在第二部分运行时,lodash 尚未加载。
您需要停止延迟 lodash 加载或将第二段代码包装在某种就绪回调中,该回调在加载 lodash 之前不会运行。
尝试删除第一个脚本标记中的“延迟”或将延迟添加到第二个脚本标记。 脚本标记中的“延迟”意味着它在页面完成解析后执行。 这里有更详细的解释。
您可以await
lodash 可用。
const sleep = (delay: number) => new Promise((resolve) => setTimeout(resolve, delay));
const getLodash = () =>
new Promise(async (resolve) => {
while (_ === undefined) {
await sleep(100);
}
resolve(_);
});
(async () => {
window.lodash = await getLodash();
})();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.