当我在HTML页面上添加(安装)2个组件时,我收到“ Uncaught TypeError:无法读取在mount $ 1处未定义的属性'class'”
<body>
<script src="https://cdn.jsdelivr.net/npm/riot@3.13/riot+compiler.js">
</script>
<script type="riot/tag">
<dict2-app>dict2-app</dict2-app>
</script>
<dict2-app></dict2-app>
<script>
riot.mount('dict2-app')
</script>
<script type="riot/tag">
<dict3-app>dict3-app</dict3-app>
</script>
<dict3-app></dict3-app>
<script>
riot.mount('dict3-app')
</script>
</body>
当我注释//riot.mount('dict{X}-app')其中之一时,代码可以正常工作
答案 0 :(得分:0)
您不需要调用多个riot.mount,只需要一个如下所示的文件即可:
Uncaught ReferenceError: getClassStatus is not defined
您的代码将是:
riot.mount('*')
答案 1 :(得分:0)
Uncaught TypeError: Cannot read property 'class' of undefined at mount$1
是无用的错误消息,表示“暴动不知道具有此名称的组件”。检查并确保同时包含两个模板。将console.log
文件添加到每个文件并读取编译的源文件。如果日志没有出现或在错误之后出现,那是您的问题。
最糟糕的是,如果您莫名其妙地两次骚乱,这就是我正在努力解决的问题。基本上,第一个副本将向其注册标签,而第二个副本将对其取消注册(或更准确地说,将Window.riot替换为不了解您的标签的副本)。
我尝试了您的代码示例,并得到了相同的错误。它可以与其他答案(riot.mount('*')
)配合使用,也可以与以下方式配合使用:
<script>
riot.mount('dict2-app')
riot.mount('dict3-app')
</script>
它也可以将所有脚本标签放在最后。
<body>
<script src="https://cdn.jsdelivr.net/npm/riot@3.13/riot+compiler.js">
</script>
<script type="riot/tag">
<dict2-app>dict2-app</dict2-app>
</script>
<dict2-app></dict2-app>
<script type="riot/tag">
<dict3-app>dict3-app</dict3-app>
</script>
<dict3-app></dict3-app>
<script>
riot.mount('dict2-app')
</script>
<script>
riot.mount('dict3-app')
</script>
</body>
不知道这是为什么的问题。