Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

把 file 传给 data 方法 #32

Merged
merged 3 commits into from
Mar 23, 2016
Merged

Conversation

yesmeck
Copy link
Member

@yesmeck yesmeck commented Mar 22, 2016

像阿里云的 OSS 需要把文件名放在 data 里,我们会把上传的文件名换成 UUID,所以我希望能在 data 里拿到上传的文件对象,然后根据上传文件的后缀生成新的文件名。

顺便改正了 data 的 prop 验证。

@yesmeck yesmeck force-pushed the master branch 2 times, most recently from 377a876 to 16cd636 Compare March 22, 2016 06:15
@coveralls
Copy link

Coverage Status

Coverage remained the same at 42.373% when pulling 16cd636 on yesmeck:master into 7c1b56a on react-component:master.

@yesmeck
Copy link
Member Author

yesmeck commented Mar 22, 2016

测试好像在 master 就是坏的

@shepherdwind
Copy link
Contributor

用例我改了,readme.md 也改下吧

@coveralls
Copy link

Coverage Status

Coverage increased (+1.1%) to 43.503% when pulling 14a7ea3 on yesmeck:master into 7c1b56a on react-component:master.

@coveralls
Copy link

Coverage Status

Coverage remained the same at 43.503% when pulling 209d5f4 on yesmeck:master into 4c4b7c2 on react-component:master.

@coveralls
Copy link

Coverage Status

Coverage remained the same at 43.503% when pulling 209d5f4 on yesmeck:master into 4c4b7c2 on react-component:master.

@yesmeck
Copy link
Member Author

yesmeck commented Mar 23, 2016

更新了

@yiminghe yiminghe merged commit f76e1c3 into react-component:master Mar 23, 2016
@RelaxLiu
Copy link

您好大牛,我要在上传时带其他参数怎么配置啊?不仅仅是file,还有token等参数。

@shepherdwind
Copy link
Contributor

@yangggggg 文档上有的 , data 可以传递额外参数

@luoboding
Copy link

请问如果我的token是异步获取的。那么我的data应该如何返回呢?或则说data能返回一个promise对象么?

@shepherdwind
Copy link
Contributor

token 是异步的,只能提前先准备好 token ,先发一个请求吧,不然好像是没法搞。

或者也可以结合 beforeUpload,data 两个方法来实现,举个例子

let token = '';

props = {
  data: () => token,
  beforeUpload => {
     getToken().then(ret => { token = ret });
  }
}

@mboo2005
Copy link

直接上传到oss需要异步的拿数据一起提交。用了 @shepherdwind 的方法。

@BugHiding
Copy link

@mboo2005 您好,我也按照 @shepherdwind 给的事例去写了,但是 上传的时候 token 还是之前未修改的数据。

 <Upload
                name="file"
                data={this.hello}
                beforeUpload={() =>
                  Axios.get('/token').then((res) => {
                    this.hello = {
                      token: res.data,
                    };
                  })
                }
                action="http://upload.qiniu.com"
                listType="picture-card"
                fileList={fileImgList}
                onPreview={this.handleImgPreview}
                onChange={this.handleImgChange}
              >

请问是哪里出了问题了么,不胜感激。

@vdfor
Copy link

vdfor commented Aug 27, 2018

data可以是函数

data: async (file) => {
  const token = await getToken();
  return {
     token,
     fileName: file.name
  }
}

@luoboding
Copy link

这种情况建议直接使用customRequest来自行处理.

@BugHiding
Copy link

@luoboding @vdfor 非常感谢,我试一下。这个问题过去很久了,之前我的临时解决办法是修改token获取的时机。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants