【发布时间】:2021-09-01 01:27:19
【问题描述】:
我读过Cancel event on input type="file",但是当输入标签被隐藏时这不起作用,焦点不会转到输入标签。
我希望在操作系统文件选择器关闭时重新呈现按钮 - a.在选择任何文件之后,b。无需选择文件并单击取消按钮
当用户实际选择文件时,在 Button.onClick 或 input.onChange|onClick 事件上附加 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}
/>
</>
);
【问题讨论】:
-
隐藏输入时不触发onfocus事件
-
请添加无效的最小代码的代码框
-
像这个答案这样的流程会建议工作吗?要使用可见按钮触发单击输入的功能,仍然会在输入上为您提供 onChange 事件以使用:stackoverflow.com/questions/52025558/…
标签: javascript reactjs file-upload