繁体   English   中英

使用 lodash 和 wordpress 的 Javascript 错误“_ 未定义”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM