graphql - Dropzone Apollo-upload-client 使用 Upload!类型

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

我正在使用 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 /> ! 第一个值正在使用 <Dropzone /> , 第二个值使用 <input /> .

enter image description here

你知道我为什么收到这个 $file不匹配 Upload!问题?我在下面添加了更多代码以供引用。

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

最佳答案

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

variables: { firstFile }

试试这个:

variables: { file: firstFile }

关于graphql - Dropzone Apollo-upload-client 使用 Upload!类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48675788/

相关文章:

javascript - Apollo GraphQL 解析器类型签名中的信息参数为空

node.js - GraphiQL 返回零突变

ruby-on-rails - Apollo 和 GraphQL CORS

node.js - Sequelize 不会将值插入到新添加的列中

javascript - 如何将两个依赖的 GraphQL 查询与 'compose' 结合起来?

apollo - 如何使用 Apollo/GraphQL 增量/渐进查询数据源?

amazon-web-services - AWS 放大 graphql 突变 : Cannot return null for non-nullable field

javascript - 为什么我在 React.js + GraphQL : Module build failed: SyntaxError: Unexpected token (10:6) 中收到此错误

mongodb - apollostack/graphql-server - 如何从解析器获取查询中请求的字段

javascript - 如何在nestjs graphql中实现用户保护