nuxt 中的调用上下文在 v-bind 中不起作用
2022-04-17
728
我对在 Nuxt 中使用上下文或原型有疑问
我为“modal”名称创建了一个常量,如下所示:
export default Object.freeze({
MODAL_SHOWPRO: "MODAL_SHOWPRO",
})
我还在插件文件夹中创建了
constant.js
,并已添加到 nuxt 配置中。
import modals from '@/constants/modal';
export default ({ app }, inject) => {
inject('modalName', modals)
}
在组件中,我无法从 v-bind 调用值,它显示:未定义 MODAL_SHOWPRO
<Popup :id="$modalName.MODAL_SHOWPRO" />
但我可以从 $emit 函数调用它,如下所示:
@click="$nuxt.$emit('showModal', {id: $modalName.MODAL_SHOWPRO})"
你能告诉我为什么以及如何修复它吗?
注意:它将工作,如果: 我制作数据
{
modal: ''
}
并添加到创建时间:
async created() {
this.modalName = await this.$modalName
}
1个回答
Nuxt 是一个元框架,旨在提供通用应用程序(服务器然后是客户端)。因此,您需要同时考虑服务器和客户端。
在您的代码中,您指定了
ssr: false
,这已经过时了,应该是
mode: 'client'
。但这样设置仍然是 false,因为这意味着 ENUM 在服务器上不可用(因此出现错误)。
这样设置更合适(考虑到插件的性质),也可以解决问题
plugins: ['~/plugins/constant.js'],
有关 Nuxt 插件的更多信息: https://nuxtjs.org/docs/directory-structure/plugins#plugins-directory
kissu
2022-04-17