Naive UI 表单问题

页面切换时发现报这个错

Uncaught (in promise) TypeError: Cannot destructure property 'isSsrRef' of 'inject(...)' as it is undefined.
    at setup (GridItem.js:32:17)
    at callWithErrorHandling (runtime-core.esm-bundler.js:173:22)
    at setupStatefulComponent (runtime-core.esm-bundler.js:7265:29)
    at setupComponent (runtime-core.esm-bundler.js:7220:11)
    at mountComponent (runtime-core.esm-bundler.js:5542:13)
    at processComponent (runtime-core.esm-bundler.js:5517:17)
    at patch (runtime-core.esm-bundler.js:5119:21)
    at ReactiveEffect.componentUpdateFn [as fn] (runtime-core.esm-bundler.js:5656:21)
    at ReactiveEffect.run (reactivity.esm-bundler.js:190:25)
    at instance.update (runtime-core.esm-bundler.js:5763:56)

这个报错读起来发现真的很难理解呀,最后发现用naive ui表单时,忘了加外一层,加上如下就好了

<n-grid x-gap="20" y-gap="20" cols="1 400:2 800:3 1000:5">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Naive UI Dialog 中可以使用 `<n-form>` 标签来创建表单,以下是一个简单的例子: ``` <n-dialog v-model:visible="dialogFormVisible" title="表单对话框"> <n-form ref="form" :model="formData" :rules="formRules"> <n-form-item label="名称" label-width="80px" prop="name"> <n-input v-model="formData.name" placeholder="请输入名称"></n-input> </n-form-item> <n-form-item label="年龄" label-width="80px" prop="age"> <n-input-number v-model="formData.age"></n-input-number> </n-form-item> <n-form-item> <n-button type="primary" @click="submitForm">提交</n-button> <n-button @click="resetForm">重置</n-button> </n-form-item> </n-form> </n-dialog> ``` 在上面的代码中,我们首先创建了一个 `<n-dialog>` 标签,然后在其内部使用了 `<n-form>` 标签来创建表单。在 `<n-form>` 标签中,我们可以使用 `<n-form-item>` 标签来创建表单项,然后在表单项中使用不同的控件(如 `<n-input>` 和 `<n-input-number>`)来构建输入框。 在表单中,我们可以使用 `v-model` 指令来双向绑定表单数据,使用 `prop` 属性来指定表单项对应的数据字段。同时,我们还可以使用 `:rules` 属性来指定表单项的验证规则。 在表单下方,我们可以使用 `<n-button>` 标签来创建提交和重置按钮,并在其 `click` 事件中调用相应的方法来提交或重置表单数据。 在 JavaScript 中,我们可以定义 `formData` 和 `formRules` 变量来存储表单数据和验证规则,然后在提交表单时调用 `<n-form>` 标签的 `submit` 方法来进行表单验证和提交。 这里是完整的 JavaScript 代码: ``` export default { data() { return { dialogFormVisible: false, formData: { name: '', age: 0 }, formRules: { name: [ { required: true, message: '请输入名称', trigger: 'blur' } ], age: [ { required: true, message: '请输入年龄', trigger: 'blur' }, { type: 'number', message: '年龄必须为数字值', trigger: 'blur' } ] } } }, methods: { submitForm() { this.$refs.form.submit() }, resetForm() { this.$refs.form.resetFields() }, onSubmit() { // 表单验证通过后的操作 console.log(this.formData) this.dialogFormVisible = false } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值