当子级的 onClick 被触发时,触发向父级注册的 onKeyUp 事件

Firing onKeyUp event registered with parent when child's onClick is fired

我有一个名为 onKeyUp 的函数定义如下,它监听转义和输入键

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>

我想在有人点击 Tag 时触发相同的事件 onKeyUp,因为 onKeyUpdiv

我该怎么做?

尝试将 event.stopPropagation() 添加到您的 onKeyUp() 函数中 :D