点击事件测试问题

来源:5-6 月份选择器进阶测试

qq_慕勒5016658

2020-08-04

关于日期下拉菜单的点击事件,我是在点击打开下拉菜单时才把点击监听事件挂上去,当点击其他区域的时候再把监听事件移除
所以导致eventMap.click为空
这种情况应该怎样再模拟点击之后再把监听事件挂上去?

toggleDropdown = (e) => {
      e.preventDefault()
      
      if ( !this.state.isOpen ) {
          this.setState({
              isOpen: true
          })
          // if the clicked element is not this element, then close the dropdown menu
          document.addEventListener('mouseup', this.handleClikeOutSide)
      } else {
          this.closeComponent()
      }
}
handleClikeOutSide = (e) => {
      const onClickItem = e.target.className.includes('dropdown-item')
      const onClickToggle = e.target.className.includes('dropdown-toggle')
      if ( !onClickItem && !onClickToggle ) {
          this.closeComponent()
      }
}

closeComponent = () => {
      this.setState({
          isOpen: false
      })
      document.removeEventListener('mouseup', this.handleClikeOutSide)
      this.props.onChange({year: this.state.selectedYear, month: this.state.selectedMonth})
}
写回答

1回答

张轩

2020-08-05

同学你好 请提供一下你的测试代码的写法 详细点比较好 我在本地跑一下 这样会更快的定位问题

0
0

React16组件化+测试+全流程 实战在线账本项目

轻松上手,从设计图到上线,精通组件化思维和组件测试

713 学习 · 177 问题

查看课程