我對反應很陌生-嘗試構建一個相當簡單的應用程式。我想做的只是獲取console.log用戶按下的鍵的值(例如,如果用戶按下k,則k出現在 中console.log)。
這是我到目前為止所擁有的:
import "./TextArea.css";
const TextArea = () => {
const registerKeyPresses = (e) => {
console.log(e);
};
return (
<form className="textinputframe">
<div className="textinputframe">
<textarea
className="textinput"
type="text"
onKeyDown={registerKeyPresses}
/>
</div>
</form>
);
};
export default TextArea;
這就是它回傳的內容:
SyntheticBaseEvent {_reactName: 'onKeyDown', _targetInst: null, type: 'keydown', nativeEvent: KeyboardEvent, target: textarea.textinput, …}
altKey: false
bubbles: true
cancelable: true
charCode: 0
code: "MetaLeft"
ctrlKey: false
currentTarget: null
defaultPrevented: false
detail: 0
eventPhase: 3
getModifierState: ? modifierStateGetter(keyArg)
isDefaultPrevented: ? functionThatReturnsFalse()
isPropagationStopped: ? functionThatReturnsFalse()
isTrusted: true
key: "Meta"
keyCode: 91
locale: undefined
location: 1
metaKey: true
nativeEvent: KeyboardEvent {isTrusted: true, key: 'Meta', code: 'MetaLeft', location: 1, ctrlKey: false, …}
repeat: false
shiftKey: false
target: textarea.textinput
timeStamp: 9066952.4
type: "keydown"
view: Window {window: Window, self: Window, document: document, name: '', location: Location, …}
which: 91
_reactName: "onKeyDown"
_targetInst: null
[[Prototype]]: Object
uj5u.com熱心網友回復:
這是keydown事件檔案。從那里你會看到
keydown事件也都是KeyboadEvents
和- 所有
KeyboardEvents 都有一個.code屬性,對應于在產生事件的鍵盤上按下的物理鍵(例如MetaLeft在您的示例中)
現在,如果這對您有用,您可以控制臺記錄物理鍵,或者 - 如果您只查找按鍵的輸出,則可以使用 s中的一個.key屬性來代替。KeyboardEvent
簡而言之,不同之.code處.key在于,如果您按下鍵盤上的“k”鍵,.code將等于"KeyK"和.key將等于"k"。
如果您想要 textarea 的值,則可以使用Event.target(因為keydown是 a KeyboardEventwhich is an Event),它對應于 textfield 元素。該元素將具有一個.value等于文本欄位值的道具。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/445970.html
標籤:反应
上一篇:Lodash油門不節流?
下一篇:Json值到列
