_this.networkInterface.query не является функцией при попытке сделать мутацию - PullRequest
0 голосов
/ 20 октября 2018

- это мой первый раз, когда я пытаюсь сделать мутацию с помощью apollo-graphql и, кажется, получаю первую ошибку, что я не знаю, что на самом деле означает.

Так вот мой store.jsгде я создаю networkInterface.

import { createStore, applyMiddleware } from 'redux';
import { AsyncStorage } from 'react-native';
import { composeWithDevTools } from 'redux-devtools-extension';
import { ApolloClient, createNetworkInterface } from 'react-apollo';
import thunk from 'redux-thunk';
import { createLogger } from 'redux-logger';
import { SubscriptionClient } from 'subscriptions-transport-ws';

import reducers from './redux/reducers';

const networkInterface = createNetworkInterface({
    uri: 'http://localhost:3000/graphql',
});

const wsClient = new SubscriptionClient('ws://localhost:3000/subscriptions', {
    reconnect: true,
    connectionParams: {}
})

networkInterface.use([{
    async applyMiddleware(req, next) {
        if (!req.options.headers) {
            req.options.headers = {};
        }
        try {
            const token = await AsyncStorage.getItem('@tomj');
            if (token != null) {
                req.options.headers.authorization = `Bearer ${token}` || null;
            }
        } catch (error) {
            throw error;
        }

        return next();
    }
}])

const networkInterfaceWithSubs = ({
    networkInterface,
    wsClient
})

export const client = new ApolloClient({
    networkInterface: networkInterfaceWithSubs
});

const middlewares = [client.middleware(), thunk, createLogger()];

export const store = createStore(
    reducers(client),
    undefined,
    composeWithDevTools(applyMiddleware(...middlewares)),
);

Также здесь есть функция регистрации, из-за которой возникает ошибка const { data }

onSignUpPress = async () => {
    const { email, password, phone, role } = this.state;
    this.setState({ loadingVisible: true });
    setTimeout(() => {
        if (typeof email && password && phone && role != '') {
            this.setState({
                loadingVisible: false,
                formValid: true,
            });
            const { data } = this.props.mutate({
                variables: {
                    email,
                    password,
                    phone,
                    role
                }
            })
        } else {
            this.setState({
                loadingVisible: false,
                formValid: false,
            });
        }
    }, 2000);
}

Я хочу упомянуть, что я использую "react-apollo": "^1.4",

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...