请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

ValidateForm组件bug

export default defineComponent({
  name: 'ValidateForm',
  emits: ['submit-form'],
  setup(props, context) {
    let funcArr: ValidateFunc[] = []
    let ClearInputfuncArr: ValidateFunc[] = []

    const submitForm = () => {
      const result = funcArr.map(func => func()).every(result => result)
      console.log(result)
	  if (result) { ClearInputfuncArr.map(func => func()) } //此处有bug
      context.emit('submit-form', result)
    }
    const callbackClearInput = (func: clearInputFunc) => {
      funcArr.push(func)
    }
    const callback = (func: ValidateFunc) => {
      funcArr.push(func)
    }

    emitter.on('formItemCreated', callback)
    emitter.on('clearInput', callbackClearInput)
    onUnmounted(() => {
      emitter.off('formItemCreated', callback)
      emitter.off('clearInput', callbackClearInput)
      funcArr = []
      ClearInputfuncArr = []
    })
    return { submitForm }
  }
})

老师帮忙看看!
注明有bug处,代码逻辑当result为ture时清空input,但是为false也会清空input,一直排查不出原因

正在回答 回答被采纳积分+3

1回答

张轩 2021-07-01 09:56:26

同学你好 你的40行写错了,你直接添加到了 验证的数组中,应该是添加到清空的数组中,代码如下

const callbackClearInput = (func: ValidateFunc) => {
// 应该是添加到 ClearInputfuncArr 中啊
    ClearInputfuncArr.push(func)
}
0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信