我已经阅读了取消input type="file"上的事件,但是当input标签隐藏时,它不起作用,焦点不会转到input标签。
我希望在操作系统文件选择器关闭后重新渲染按钮 - a. 在选择任何文件之后,b. 在没有选择文件并单击取消按钮之后
将useState/useForceUpdate/useReducer
附加到或事件上,当用户实际上选择文件时有效,但是当用户未选择文件并点击取消按钮(或使用键盘按Esc键)时无效。
input.onFocus
不会触发。是否有一种方法可以在用户完成文件选择器关闭而没有选择文件(取消/Esc键)时重新渲染按钮?
const [, forceUpdate] = React.useReducer((x) => x + 1, 0);
return (
<>
<input
type="file"
ref={uploadRef}
id={`${toolbarButtonId}`}
accept={acceptParams}
onChange={onClickEvent}
onClick={onClick}
hidden
onFocus={forceUpdate}
/>
<Button
ariaLabel={ariaLabel}
ariaDescription={ariaDescription}
disabled={disabled}
iconName={iconName}
id={toolbarButtonId}
position={position}
onClick={fileUploadRefLink}
{...props}
/>
</>
);