单击 div 时打开文件浏览器做出反应

2024-02-10

我的反应组件:

import React, { PropTypes, Component } from 'react'


class Content extends Component {
    handleClick(e) {
        console.log("Hellooww world")
    }
    render() {
        return (
            <div className="body-content">
                <div className="add-media" onClick={this.handleClick.bind(this)}>
                    <i className="plus icon"></i>
                    <input type="file" id="file" style={{display: "none"}}/>
                </div>
            </div>
        )
    }
}

export default Content

在这里,当我单击带有图标的 div 时,我想打开一个<input>文件显示了选择照片的选项。选择照片后,我想获取选择的照片的值。我怎样才能在反应中做到这一点?


首先,为您的input.

const inputFile = useRef(null) 
// or, for TypeScript
// const inputFile = useRef<HTMLInputElement | null>(null);

然后将其设置为您的input并添加样式display: none对于它,将其隐藏在屏幕上。

<input type='file' id='file' ref={inputFile} style={{display: 'none'}}/>

然后创建函数来处理打开的文件。该函数应该位于您正在使用的同一函数内useRef hook.

const onButtonClick = () => {
  // `current` points to the mounted file input element
  inputFile.current.click();
};

然后将函数设置为button元素:

<button onClick={onButtonClick}>Open file upload window</button>

HTML 输入文件的 API https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications#Using_hidden_file_input_elements_using_the_click()_method

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击 div 时打开文件浏览器做出反应 的相关文章

随机推荐

  • C# - 带种子的随机数

    我有这个代码 var rand new Random 0 for int i 0 i lt 100 i Console WriteLine rand Next 0 100 程序应该给我相同数字的 100 倍 因为种子是相同的 但它给出了不同
  • 如何仅打印 hexdump 中的十六进制值而不显示行号或 ASCII 表? [复制]

    这个问题在这里已经有答案了 下列的在 UNIX shell 脚本中将十进制转换为十六进制 https stackoverflow com questions 378829 convert decimal to hexadecimal in
  • 串口通信初始化

    目前我们正在尝试创建一个串行通信接口 以便能够与微处理器进行通信 事实上 一切都很好 几乎 为了能够与我们的控制器通信 我们需要与其同步 为此 我们编写一个字符串 0 SY 13 然后控制器应该回复 0 SY F5 接受同步请求 为此 我们
  • 名称或类型具有某种语言链接意味着什么?

    根据 c ANSI ISO IEC 14882 2003 第 127 页 联动规格嵌套 当链接规范嵌套时 最里面的规范决定语言 链接规范不建立范围 链接规范仅应出现在名称空间范围内 3 3 在链接规范中 指定的语言链接适用于声明引入的所有函
  • 从 bash 执行 MySQL 查询时如何获取受影响的行数?

    我知道如何从 bash 执行 MySQL 查询 命令 mysql u user p pass e mysql commands or mysql u user p pass lt lt QUERY INPUT mysql commands
  • Prolog 中的自定义数据结构语法

    在序言中 H T 是开头的列表H以及剩余元素在列表中的位置T 内部表示为 H 是否可以以类似的方式定义新语法 例如 是否可以定义 T H 是以以下结尾的列表H以及剩余元素在列表中的位置T 然后像这样自由地使用它 H T 在谓词的头部和主体中
  • 如何在 jQuery UI Datepicker 中将 minDate 设置为当前日期?

    这是我的代码 它无法正常工作 我想设置minDate到当前日期 我该怎么做 input DateFrom datepicker changeMonth true changeYear true dateFormat yy mm dd max
  • Python:根据字典中的内容从列表中获取字典

    我需要能够在 a 中找到一个项目list 本例中的一个项目是dict 基于其中的某个值dict 的结构list我需要处理如下 title some value value 123 4 id an id title another title
  • MSTest 测试方法依赖注入

    我正在使用 DI 容器 并且想要使用从容器解析的实例进行 MSTest VS 2010 单元测试 我想将这些实例注入到我的 TestMethod 或至少是我的 TestClass 中 这可能吗 现在我的 TestMethods 直接调用co
  • 根据项目的特殊属性从列表中删除项目[重复]

    这个问题在这里已经有答案了 我有一个由我定义的项目组成的列表 每个项目都有一个属性 name t item1 item2 我想根据其属性从 t 列表中删除项目 name 如remove 或pop 方法 也许我可以做类似的事情 t remov
  • C# 从文件序列化数据契约

    我有一个 Xml 消息列表 特别是我记录到文件中的 DataContract 消息 我正在尝试将它们从文件中一一反序列化 我不想立即将整个文件读入内存 因为我预计它会很大 我有这个序列化的实现并且有效 我通过使用 FileStream 进行
  • ARCORE:通过单击此可渲染对象来删除特定的可渲染对象

    我正在开发一个使用 ARCore 的 Sceneform 的项目 我基于ARCore提供的HelloSceneform示例进行开发 我想要做的是通过点击添加一个可渲染对象 然后当我单击屏幕上的特定可渲染对象时将其删除 我已经尝试了方法 An
  • 在原生 Javascript 中查找具有类的元素的索引

    有没有办法获取类名的索引 即 类 className 的第三个元素将是 3 而不使用 jQ 我不了解jQ 而且我现在没有时间学习它 而且我不想在我的代码中包含至少一些我不理解的代码 Thanks 顺便说一句 我使用了 jQ 而不是拼写出来
  • 由 Scala 宏生成时,依赖类型似乎“不起作用”

    为这个挥手的标题道歉 我不完全确定如何简洁地表达这个问题 因为我以前从未遇到过这样的事情 背景资料 我有以下特征 其中类型U是为了举行无形可扩展记录 https github com milessabin shapeless wiki Fe
  • 我可以使用 memcpy 写入多个相邻的标准布局子对象吗?

    免责声明 这是试图深入研究一个更大的问题 所以请不要纠结于这个例子在实践中是否有意义 而且 是的 如果你想的话copy对象 请使用 提供复制构造函数 但请注意 即使该示例也不会复制整个对象 它会尝试将一些内存复制到一些相邻的 Q 2 整数上
  • 如何在 EF Code First 中对表进行单一化?

    在命名数据库表时 我更喜欢使用单数名词 然而 在 EF 代码优先中 生成的表始终是复数 我的 DbSet 是复数的 我相信这是 EF 生成名称的地方 但我不想将这些名称单数化 因为我相信在代码中使用复数名称更实用 我也尝试过覆盖该设置但无济
  • 如何在 JavaScript 中将数组的每个成员乘以标量?

    例如 我如何实现以下目标无需迭代数组 var a 1 2 3 5 a should equal 5 10 15 Array map https developer mozilla org en JavaScript Reference Gl
  • 异步 useState 导致层次结构中未定义的元素

    设置 场景 我正在使用 twitter api 来获取数据并使用 twitter 卡将其呈现反应本机社交 https github com PierreCapo react native socials 推文数据 JSON 通过我的后端存储
  • 尝试将多个函数聚合到新列时出现意外的 KeyError Pandas

    我看过以下问题 将多个函数应用于多个 groupby 列 https stackoverflow com questions 14529838 apply multiple functions to multiple groupby col
  • 单击 div 时打开文件浏览器做出反应

    我的反应组件 import React PropTypes Component from react class Content extends Component handleClick e console log Hellooww wo