小编Nat*_*anL的帖子

Apollo GraphQL“不能为不可为空的字段 Mutation.createUser 返回 null”

我知道这是一个比较常见的问题,但我的实现与其他帖子不同。我正在使用最基本的实现,但我无法开始工作。我使用 Sequelize 和 MySQL 作为数据库实现。

解析器.js

const resolvers = {
    Query: {
        async getStudent (root, { id }, { models }) {
            return models.User.findByPk(id)
        },
    },
    Mutation: {
        async createUser (root, { name, email }, { models }) {
            return models.User.create({
                name,
                email
            })
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

架构.js

const { gql } = require('apollo-server-express');
const typeDefs = gql`
    type User {
        id: Int!
        name: String!
        email: String!
    }
    type Query {
        getUser(id: Int!): User
        getAllUsers: [User!]!
    }
    type Mutation { …
Run Code Online (Sandbox Code Playgroud)

node.js sequelize.js graphql apollo-server

5
推荐指数
1
解决办法
2万
查看次数

React Apollo-subscriptionToMore / updateQuery错误地传播更新

我有一个订阅,比方说postIsRead,它表示当前正在阅读的帖子列表中的帖子,例如:

帖子:{id:1,阅读:true}

...管他呢。一次只能阅读一篇文章。无论如何,这是通过subscribeToMore在订阅上的updateQuery。

       updateQuery: (prev, { subscriptionData }) => {
            if (!subscriptionData.data) return prev;
            let posts = [...prev.posts];
            posts.forEach((f)=> {
                f.id === subscriptionData.data.postIsRead.id
                    ? f.read = subscriptionData.data.getPosts.read
                    : f.read = false
            });
            return Object.assign({}, prev, {
                getPosts: posts
            });
        }
Run Code Online (Sandbox Code Playgroud)

现在有两个问题:帖子的状态不会立即传播,例如在渲染帖子时,在多个帖子上读取=== true。它似乎滞后了,好像是在延迟加载之类的。我不确定这是React问题还是Apollo问题。

在对此进行故障排除时,它甚至变得更奇怪。我注释掉了updateQuery函数中的所有代码,使得:

       updateQuery: (prev, { subscriptionData }) => {}
Run Code Online (Sandbox Code Playgroud)

...将订阅值更新为:true。我似乎误解了它是如何工作的,因为即使函数未返回任何内容,它也在传播更改。但是,如果我完全删除updateQuery,则不会发生更改。

具体来说(为了赏金),我试图了解在订阅更新时提出更改的最佳方法。

reactjs graphql react-apollo graphql-subscriptions apollo-client

5
推荐指数
0
解决办法
123
查看次数

解决失败:Multidex仪器

在实施multidex时,每当我同步项目时都会遇到以下错误。

解决失败:Multidex仪器

我按照这些说明进行了设置。

这是相关的应用程序级别的build.gradle:

android {
    compileSdkVersion 28

    defaultConfig {
        applicationId "xxx.xyz.zzz"
        minSdkVersion 16
        targetSdkVersion 22
        multiDexEnabled true
        versionCode 1
        versionName "1.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }
}
dependencies {
    compile 'com.android.support:multidex:1.0.3'
    ....and the rest
}
Run Code Online (Sandbox Code Playgroud)

以及相关的项目级别的build.gradle:

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath 'com.google.gms:google-services:3.1.2'
        classpath 'io.fabric.tools:gradle:1.+'
    }
}

allprojects {
    repositories {
        mavenLocal()
        mavenCentral()
        jcenter()
        maven {
            url "$rootDir/../node_modules/react-native/android"
        }
        google()
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这里想念什么?

android gradle maven android-studio android-multidex

3
推荐指数
1
解决办法
1919
查看次数

Android Studio设置用于构建的节点目录(原因:错误= 2,没有此类文件或目录)

我的项目构建失败,因为它使用了错误的目录来运行Node。如何为这些编译时任务设置Node目录?

具体任务是:

app:recordFilesBeforeBundleCommandDebug

和相关的错误:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:recordFilesBeforeBundleCommandDebug'.
Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'node''
Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'node'
Caused by: java.io.IOException: Cannot run program "node" (in directory "/Users/me/Code/appname/android/app"): error=2, No such file or directory
Caused by: java.io.IOException: error=2, No such file or directory
Run Code Online (Sandbox Code Playgroud)

java android gradle android-studio react-native

2
推荐指数
3
解决办法
985
查看次数

react-native-router-flux 导航到同一场景

有没有办法导航到用户当前所在的场景?几乎相当于刷新组件?

我有一个名为 ProfileScreen 的可重用组件,它显示用户的个人资料。默认情况下,该用户是登录用户;但也可以是他们在不同屏幕上选择的用户。

问题是,如果用户在另一个用户的个人资料上,并尝试导航(通过抽屉)到他们自己的个人资料,它什么都不做。我尝试混淆 redux 函数内部的导航操作,但无济于事。

现在我让它在导航回配置文件场景之前简要导航到“加载”组件,但这远不是最佳解决方案。

有什么想法吗?

react-native react-native-router-flux

2
推荐指数
1
解决办法
220
查看次数