3

我正在使用apollo-upload-client(所以 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 }
        })
    }

这是从每个发送的文件,它们在我看来是一样的!但它只适用于<input /> 第一个值是 using <Dropzone />,第二个值是 using <input />

在此处输入图像描述

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

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

1 回答 1

4

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

variables: { firstFile }

试试这个:

variables: { file: firstFile }
于 2018-02-08T02:42:32.780 回答