사용자가 바로 가기를 누를 때마다 특수 문자, 그림 이모티콘 등을 추가해야하는 앱이 있습니다. Ctrl + D.입력에 단축키가있는 특수 문자를 추가하는 방법은 무엇입니까?
문제는 플럭스를 사용하고 있으며 내 페이지에 여러 개의 입력이 있으므로 누군가가 입력 중 하나에 문자를 추가하면 작업을 호출하고 저장소로 전달하고보기를 업데이트합니다.
이 특수 문자를 추가하려면 keyEvent를 처리하고 저장소의 해당 특성을 업데이트하는 데 사용 된 입력 구성 요소를 알아야합니다.
handleShortcut(evt) {
if (evt.keyCode === ...) {
MyActions.addSpecialChar();
evt.preventDefault();
}
}
유일한 방법입니까? document.activeElement
또는 evt.target
을 사용하여 입력을 얻을 수 있지만 입력 값이 스토어 상태로 제어되므로 값을 변경할 수 없음을 알고 있습니다. 어떤 아이디어입니까?
** 업데이트 ** 나는 경우 상황이 더 명확 ... 내가, 내 앱이 내 응용 프로그램에있어 어떤 입력에 "데스크톱 응용 프로그램"에 상관없이처럼 행동하고 싶습니다 만들려면
키 조합을 누르면 해당 입력에 특수 문자가 저장됩니다. 즉, onChange에 의해 처리됩니다. (나는 React 나 JS에 익숙하지 않다. 그래서 아마도 너무 많이 묻고있다.)
그래서 조합을 처리 할 수있는 상위 구성 요소에 onKeyPress가 있고 onChange가 트리거 될 것이다. 입력의 value
속성에 특수 문자를 추가 한 후 활성 입력.
필자가 만든 방법은 각 입력에 onKeyPress를 설정하여 조합을 찾고 내 onChange와 동일한 작업을 텍스트의 특수 문자와 함께 보냅니다. 나는 내가 모든 입력에 때 onKeyPress를 추가 할 필요가 없습니다 정상적인 문자로, onchange를 가진 조합을 처리하고자 위에 말했듯이
<input
onKeyPress={(evt)=>{
/* ... Check combination ... */
let text = _addSpecialChar(evt.target.value);
MyActions.update(text);
}}
onChange={(evt)=>{
MyActions.update(evt.target.value);
}}
/>
. 이것이 가능한가?
상점 상태는 어떠한가? 이모티콘을 상점 국가에 전달할 수없는 이유는 무엇입니까? –
@ChaseDeAnda 할 수 있지만 할 수 있지만 일반 문자처럼 어떤 입력, 예를 들어, 내가 복사/붙여 넣을 경우에만 onChange 사용하여 그림 이모티콘을 추가 할 수있는 것처럼 이모티콘 넣을 바로 가기를 추가하고 싶습니다. 내 질문을 업데이 트 ... – MNV