【问题标题】:react-image-uploader upload on submit buttonreact-image-uploader 在提交按钮上上传
【发布时间】:2018-01-28 14:51:03
【问题描述】:

我找到this awesome react package 用于上传多张图片。

一旦通过浏览窗口从文件系统中选择图像,图像就会上传到服务器。我想要的是当我按下“提交”按钮时开始上传它们。所以我只能看到它们的预览,但除非按下按钮,否则它们实际上不会被发送。原因是我有其他数据要与图像一起发送。

我是 React 的初学者,如果有办法实现这一点,有人可以指点我吗?也许扩展 * ImagesUploader* 类?

【问题讨论】:

  • 请提供您的代码
  • @YuriRamos 我没有自定义代码。我想要的只是以某种方式定制那个包。
  • 1) 从 github 下载包 2) 研究代码 3) 学习 React 4) 根据自己的需要修改
  • @Mikke Learning react 与扩展/修改 npm 包的方式无关。所以我建议你:1)回家 2)把自己锁在地下室 3)永远不要再出去 4)每个人都会更快乐

标签: reactjs


【解决方案1】:

更新:在查看了您正在使用的包(并阅读了一些代码)之后,您似乎无法(轻松)挂钩到上传触发器 - 也就是说,如果不分叉项目,添加你自己的“暂停”机制,看看他是否会接受公关。

他没有公开任何手动开始上传的钩子,只有onLoadStart()onLoadEnd()的回调。

我最初的想法是在onLoadStart() 中添加一个生成器函数,它会暂停上传,直到您使用生成器调用next()...但是...这并不容易实现...抱歉。我会留下我原来的答案,以防以后有人需要信息。

将您的函数添加到onChange 事件处理程序,以便在用户选择文件时触发它。您将 on 更改添加到 <input> 元素。

// example

class FileUploadComponent extends React.Component {
  constructor() {
    super()
    this.state = {
      file: ''
    }
    this.handleChange = this.handleChange.bind(this)
    this.handleSubmit = this.handleSubmit.bind(this)
  }
  handleChange(e) {
    this.setState({file: e.target.files[0]})
    // do your other "pre-submitted" logic here
  }
  handleSubmit(e) {
    e.preventDefault()
    const { file } = this.state
    // do something with the file
  }
  render() {
    return (
      <div>
        <input type='file' onChange={this.handleChange}/>
        <button onClick={this.handleSubmit}></button>
      </div>
    )
  }
}

【讨论】:

  • 问题是现有的 onChange 处理程序做了很多事情。但它不提交图像。 * loadImages* 这样做。但是,我还需要添加一个提交按钮,我不知道如何将其连接到组件
  • 我知道该怎么做,但问题是我需要连接 ImagesUploader,它是我提到的不使用 react 内置的包附带的
猜你喜欢
  • 2018-03-25
  • 1970-01-01
  • 2023-04-10
  • 2020-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-21
  • 2011-11-25
相关资源
最近更新 更多