【问题标题】:What kind of events are accepted by Enzyme's simulate?Enzyme 的模拟接受什么样的事件?
【发布时间】:2022-01-14 09:06:46
【问题描述】:

我知道simulate('click') 是用来测试点击组件的,但为什么不是simulate('onClick')?为什么它需要 'change' 而不是 'onChange'?

'click' 和 'change' 不是原生 html 事件。文档说它只需要一个 ol' 字符串。

   /**
     * Simulate events.
     * Returns itself.
     * @param args?
     */
    simulate(event: string, ...args: any[]): this;

是否有类型列表可以作为事件参数接受哪种字符串的真实来源?

【问题讨论】:

    标签: reactjs typescript enzyme


    【解决方案1】:

    .simulate() 将调用.simulateEvent() 方法,.simulateEvent() 将调用propFromEvent() 函数,它将调用mapNativeEventNames() 将浏览器原生事件名称映射到反应事件驼峰式名称,不带前缀on。例如。 'touchstart' 将映射到 'touchStart'

    然后,propFromEvent() 会将原生事件名称映射到带有前缀 on 的 React 元素道具事件驼峰式名称。例如。 'click' => 'onClick', 'mouseEnter' => 'onMouseEnter'

    所以,.simulate(event) 接受与 addEventListener 相同的浏览器原生 event 类型。它将帮助您映射到 React 事件道具。

    事件类型的完整列表:w3c

    【讨论】:

      猜你喜欢
      • 2017-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 2023-03-31
      • 1970-01-01
      • 2021-01-11
      • 1970-01-01
      相关资源
      最近更新 更多