Событие включения onKeyUp, зарегистрированное с родителем, когда запускается onClick ребенка - PullRequest
0 голосов
/ 27 марта 2020

У меня есть функция с именем onKeyUp, определенная следующим образом, которая прослушивает escape и клавишу ввода

const onKeyUp = (targetKey: string, event: React.KeyboardEvent<HTMLDivElement>) => {
    const key = event.keyCode;
    const editString = event.currentTarget.textContent;
    switch (key) {
        case 27: // escape key
        case 13: // enter key
            if (editString.trim().length === 0) {
                MOpenSnackBar({
                    message: {
                        key: new Date().getTime(),
                        message: "Target segment cannot be empty"
                    },
                    open: true
                });
            } else {
                if (editString.trim() !== currentVal.trim()) {
                    props.onChangeCallback(targetKey, editString);
                }
                removeEditMode(targetKey);
            }
            break;
    }
};


const done = (targetKey: string, event: React.MouseEvent<HTMLSpanElement, MouseEvent>) {
   // call onKeyUp here
}

Она определена в div, который выглядит следующим образом:

<div onKeyUp={onKeyUp.bind(null, props.targetStringId)}>

       .. some tags here
       <Tag onClick={done.bind(null, props.targetStringId)}>Done</Tag>
       .. some more tags here
</div>

I хотите вызвать то же самое событие onKeyUp, когда кто-то нажимает Tag, как было запущено onKeyUp для div.

Как я могу это сделать?

1 Ответ

1 голос
/ 27 марта 2020

попробуйте добавить event.stopPropagation() в вашу onKeyUp() функцию: D

...