Мутация Аполлона «В этой среде источником для assign ДОЛЖЕН быть объект»

Кто-нибудь знает, что делать с такого рода ошибкой во время мутации?

Происходит здесь:

const RepositoryItem = ({ repository, selectedRepositoryIds }: IProps) => {
    const isSelected = _.includes(selectedRepositoryIds, repository.id);
    return (
        <View style = {Theme.para}>
            <View style = {Theme.horizontalTopLeft}>
                <Mutation
                    // @ts-ignore - mappings incorrect for Mutations
                    mutation = {SelectRepository}
                    variables = {{ id: repository.id, isSelected }}>
                    {(toggleSelectRepository: ((id: string, isSelected: boolean) => void)) =>
                        (<Switch value = {isSelected}
                            onValueChange = {(val) => {
                                const {id} = repository;
                                toggleSelectRepository(id, val);
                                }} />)}
                </Mutation>

            </View>
        </View >);
};

С использованием

"apollo-cache": "^1.1.9",
    "apollo-cache-inmemory": "^1.2.1",
    "apollo-client": "^2.3.1",
    "apollo-link": "^1.2.2",
    "apollo-link-error": "^1.0.9",
    "apollo-link-http": "^1.5.4",
    "apollo-link-state": "^0.4.1",
 "graphql": "^0.13.2",
    "graphql-tag": "^2.9.2",
    "lodash": "^4.17.5",
    "react": "16.3.1",
    "react-apollo": "^2.1.4",
    "react-native": "~0.55.2"

На основе учебника Робина Веруха https://www.robinwieruch.de/react-apollo-link-state-tutorial/#apollo-link-state-mutation

Мутация Аполлона «В этой среде источником для assign ДОЛЖЕН быть объект»

не могли бы вы поделиться своим запросом? или, чтобы быть конкретным, toggleSelectRepository - это имя функции мутации ur?

Mohsen ZareZardeyni 04.06.2018 15:31

Спасибо @MohsenZareZardeyni - проблема, однако, заключалась в моих параметрах для распознавателя. Посмотреть ответ

Thomas Hagström 05.06.2018 10:21
Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
2
2
201
1

Ответы 1

Проблема заключалась в вызове решателя с параметрами. Они уже поставляются как variables, поэтому (немного сбивает с толку) преобразователь toggleSelectRepository следует вызывать без каких-либо аргументов.

Проверяя это, я вижу, что параметры действительно поставляются, как указано в variables.

        <Mutation
            // @ts-ignore - mappings incorrect for Mutations
            mutation = {SelectRepository}
            variables = {{ id: repository.id, isSelected }}>
            {(toggleSelectRepository, { loading, error }: GenericResponse) => {
                if (error) {
                    return <FormValidationMessage>{error.message}</FormValidationMessage>;
                }
                if (loading) {
                    return <BusyIndicator isBusy message='One sec..' />;
                }

                return (<Switch
                    value = {isSelected}
                    onValueChange = {() => toggleSelectRepository()} />);
            }}
        </Mutation>

Другие вопросы по теме