ant design pro of vue自定義了編輯modal,當點擊編輯按鈕時,第一次獲取不到值。但是第二次點就有值了,並且瀏覽器有警告
You cannot set a form field before rendering a field associated with the value. 大概是說不能再渲染前對field進行賦值,解決辦法如下:
this.$nextTick(() => {
this.form.setFieldsValue({
name: record.name,
memo: record.memo,
id: record.id
})
})
nextTick大概可以理解爲
在created()
鉤子函數執行的時候DOM 其實並未進行任何渲染,而此時進行DOM操作無異於徒勞,所以此處一定要將DOM操作的js代碼放進Vue.nextTick()
的回調函數中。與之對應的就是mounted()
鉤子函數,因爲該鉤子函數執行時所有的DOM掛載和渲染都已完成,此時在該鉤子函數中進行任何DOM操作都不會有問題 。