鍍金池/ 問答/HTML/ iview表單驗證promise失效?

iview表單驗證promise失效?

問題已解決,原因是我沒有正確調(diào)用回調(diào)

同樣的代碼,放到mounted里面有效,放到處理程序中就無效了。路過的大神幫忙看看?

mounted () {  // 能正確輸出
    this.$refs.loginForm.validate(() => {
        console.log('hi')
    }, () => {
        console.log('error')
    })
}
// -------------------------------------------
toLogin () {
    console.log('start')  // 'start'
    
    // no console...
    this.$refs.loginForm.validate(() => {
        console.log('hi')
    }, () => {
        console.log('error')
    })
    
    console.log('end')  // 'end'
}
回答
編輯回答
擱淺

使用this.$ref獲取元素必須等到元素或組件加載完成后才可獲取到,也就是在mounted周期后。

注意 mounted 不會承諾所有的子組件也都一起被掛載。如果你希望等到整個視圖都渲染完畢,可以用 vm.$nextTick 替換掉 mounted:
mounted: function () {
  this.$nextTick(function () {
    // Code that will run only after the
    // entire view has been rendered
  })
}
2017年12月17日 01:08