【问题标题】:Dropzone Apollo-upload-client using Upload! TypeDropzone Apollo-upload-client 使用 Upload!类型
【发布时间】:2018-07-18 10:48:47
【问题描述】:

我正在使用apollo-upload-client (so graphQL) 并尝试使用 dropzone 将文件上传到我的服务器。

我已经使用 <input required onChange={({ target: { validity, files: [file] } })=> this._uploadFiles(validity, file)} 和函数成功地做到了这一点

_uploadFiles = async (validity, file) => {
        if (validity.valid){
            await this.props.addImageFileMutation({
                variables: {file}
            })
        }
    }

对于 Dropzone,我有:

<Dropzone
                      onDrop={this._onDrop.bind(this)}
                      multiple={false}>
                    </Dropzone>

使用函数:

_onDrop = async (acceptedFiles, rejectedFiles) => {
        const firstFile = acceptedFiles[0]
        await this.props.addImageFileMutation({
            variables: { firstFile }
        })
    }

这是每个发送的文件,它们在我看来都一样!但它只适用于&lt;input /&gt; 第一个值使用&lt;Dropzone /&gt;,第二个值使用&lt;input /&gt;

你知道为什么我会收到 $fileUpload! 不匹配的问题吗?我在下面添加了更多代码以供参考。

const ADD_IMAGE_FILE_MUTATION = gql`
mutation AddImageFileMutation ($file: Upload!) {
    addImageFile(file: $file){
        id
}}`

【问题讨论】:

    标签: graphql graphql-js react-apollo react-dropzone


    【解决方案1】:

    _onDrop 中,您将一个名为firstFile 的变量传递给您的突变,但它正在寻找一个名为file 的变量:

    variables: { firstFile }
    

    试试这个:

    variables: { file: firstFile }
    

    【讨论】:

    • Daniel,我非常感谢,我不敢相信修复这么简单,谢谢!
    • 我至少遇到过两次这个问题,我认为你的解决方案也是最先解决的,非常感谢!
    猜你喜欢
    • 2019-04-20
    • 2018-07-20
    • 2018-09-05
    • 2018-08-10
    • 2021-03-20
    • 2021-12-14
    • 2019-02-15
    • 1970-01-01
    • 2021-08-01
    相关资源
    最近更新 更多