首页 > 解决方案 > 你可以将键盘事件发送到只有它的 ref 的反应组件吗?

问题描述

给定一个定义为的输入:

<input ref={myRef} onChange={handleChange} value={value} />

我想要一个按钮,可以将键盘事件发送到此输入,就好像我在输入本身中键入了键一样。我不想只更新值的原因是因为已经对输入进行了一些屏蔽(货币),如果不需要,我不想更改任何代码。

我在网上看到过这样的代码:

document.dispatchEvent(
  new KeyboardEvent("keydown", {
    keyCode: 69, // example values
    code: "KeyE" // put everything you need in this object
  })
);

我尝试用替换文档,myRef但没有奏效。所以我想知道这是否可能?

编辑:

我也试过这个没有成功:

myRef.current.dispatchEvent(new KeyboardEvent('keydown', {
  code: 'Digit8',
  key: 'Digit8',
  charKode: 56,
  keyCode: 56,
  view: window
}));

这里的代码沙箱: https ://codesandbox.io/s/gallant-goodall-zjz90

标签: reactjsinputkeyboardkeyboard-eventsref

解决方案


推荐阅读