请参阅 WordPress Storybook 以获取更详细、交互式的文档。

FormFileUpload 允许用户从其本地设备中选择文件。

import { FormFileUpload } from '@wordpress/components';

const MyFormFileUpload = () => (
  <FormFileUpload
    accept="image/*"
    onChange={ ( event ) => console.log( event.currentTarget.files ) }
  >
    Upload
  </FormFileUpload>
);

Props

accept

  • Type: string
  • Required: No

传递给 input 元素的字符串,用于告诉浏览器
文件类型
用户可以上传哪些类型。例如:image/*,video/*。

children

  • Type: ReactNode
  • Required: No

子元素将作为 Button 的子元素传递。

icon

  • Type: IconType | null
  • Required: No

要在默认按钮中渲染的图标。

有关更多信息,请参阅 Icon 组件文档。

multiple

  • Type: boolean
  • Required: No
  • Default: false

是否允许选择多个文件。

onChange

  • Type: ChangeEventHandler<HTMLInputElement, HTMLInputElement> | undefined
  • Required: Yes

直接传递给 input 文件元素的回调函数。

所选文件将在 event.currentTarget.files 中可用。

onClick

  • Type: MouseEventHandler<HTMLInputElement>
  • Required: No

直接传递给 input 文件元素的回调函数。

当希望用户在再次选择同一文件时触发 change 事件时,这非常有用。为此,请在 onClick 函数中将目标值设置为空字符串。

<FormFileUpload
  onClick={ ( event ) => ( event.target.value = '' ) }
  onChange={ onChange }
>
  Upload
</FormFileUpload>

render

  • Type: ((arg: { openFileDialog: () => void; }) => ReactNode)
  • Required: No

用于渲染 UI 的可选回调函数。

如果传递了此函数,组件不会渲染默认 UI(即一个按钮),而是调用此函数来渲染它。该函数接收一个包含属性 openFileDialog 的对象,这是一个函数,调用时会打开浏览器的原生文件上传模态窗口。