javascript - React.js 只读取第一个 if 语句
问题描述
我正在制作一个文本框,可以在输入时处理单击或在空间单击时将文本更改为 SVG。但是,react 只考虑第一个 if 语句,使用 else 有效,但 else if 被完全忽略。
文本框代码:
<input type="text" id="textbox" contentEditable="true" className="grinputbox"
onChange={(e) => {setInput(e.target.value)}}
onKeyPress={twoCalls}
/>
TwoCalls 函数:
const twoCalls = (e) => {
if (e.key === "Enter") {
console.log("enter");
handleClick()
} else if (e.key === "Space") {
console.log("space");
toSVG()
}
}
它确实在按回车时输入控制台日志,但是在按空格时没有空格
解决方案
没有这样的key
属性"Space"
。检查用户按下空格键的值是文字空格字符:" "
。您可以直接从https://keycode.info/(按空格键)或间接从MDN文档中找到它。(上面写着“如果按下的键具有打印表示,则返回值是包含键的可打印表示的非空Unicode字符串。”)
所以简而言之,更换
else if (e.key === "Space" )
和
else if (e.key === " " )
推荐阅读
- ssl - Heroku ACM SSL 表示已颁发证书,但证书不会显示在网站上
- ruby-on-rails - 如何在 activerecord 中创建对象时跳过验证
- c# - 带有圆角的 C# WPF ComboBox IsMouseOver 不起作用
- google-maps - 没有 Google 帐单详细信息会破坏地图吗?
- google-cloud-platform - BigQuery 中的并发查询是什么?
- unit-testing - 无论存根权限如何,带有 checkPermission 的 Apache shiro 单元测试都会通过
- typescript - TypeScript 方括号的名称?
- arduino - ESP8266 EEPROM 或 FLASH 错误:使用虚假凭据成功连接到 Wifi
- numpy - Dask 数组 from_npy_stack 缺少信息文件
- twilio - Twilio 使用 REST API 删除子账户中的频道