最近在使用antd vue开发一个前端的项目,遇见了不少的坑,记录一下问题的解决
- 使用router-link跳转页面时的传值 1 <router-link :to="{name: 'editBands', params: { record }}">编辑</router-link> ,name 是你在路由文件中,给页面定义的名字,然后把要传的值赋给 params,
- 在页面跳转之后需要取到值,这里可以在钩子函数中获取,created, mounted ,(还有一些钩子函数可以参考生命周期),在钩子函数中赋值给 data ,要使用 1 this.$data ,切记不要用this.data,取值用 1 this.$route.params , 切记是 $route, 不是 $router
- 再是一个 select 初始值的坑,可以写成这样
1 <a-select v-decorator="['nationality',validateRules.nationality]"> 2 <a-select-option value="1">中国</a-select-option> 3 <a-select-option value="2">欧美</a-select-option> 4 <a-select-option value="3">日本</a-select-option> 5 <a-select-option value="4">韩国</a-select-option> 6 </a-select>
-
1 <script> 2 import { axios } from '@/utils/request' 3 export default { 4 name: 'addBands', 5 data () { 6 return { 7 imgUrl: '', 8 form: this.$form.createForm(this), 9 headers: { 10 authorization: 'authorization-text' 11 }, 12 validateRules: { 13 name: { 14 initialValue: '', 15 rules: [{ required: true, message: '品牌不能为空!' }] 16 }, 17 nationality: { 18 initialValue: '', 19 rules: [{ required: true, message: '选项不能为空!' }] 20 }, 21 introduce: { 22 initialValue: '', 23 rules: [{ required: true, message: '内容不能为空!' }] 24 }, 25 engName: { 26 initialValue: '', 27 rules: [{ required: true, message: '内容不能为空!' }] 28 } 29 } 30 } 31 } 32 } 33 </script>
贴出来的不是整段代码,只是在模版中,和js块中的定义, validateRules 是定义的表单中字段的验证规则和初始值。初始值用 initvalValue 定义,验证规则用 rules定义。
- 还遇到了一个坑,多数情况下,我们对select 中的 option 选项的值 value 的定义,都是数字形式的,但是!!,在给select 设置初始值的时候,要对数字形式的值进行toString(),操作,否则select 的默认值,会莫名的显示成数字,而不是option选项中的文字。