Как передать все мои элементы в массиве как мутацию в GraphQL? - PullRequest
0 голосов
/ 26 октября 2019

Я чрезвычайно новичок в GraphQL и хочу передать свой массив данных как мутацию, чтобы обновить все мои данные. Каждый объект в массиве имеет свойство id и body. Я использую React Native и Apollo и использую Graph.cool для своих схем (я знаю, что Graph.cool скоро исчезнет, ​​но я просто использую его, чтобы узнать, как работает GraphQL). Вот мой код:

const EditScheduleScreen = ({ ScheduleQuery, SubmitSchedule, navigation }) => {
    const [schedule, setSchedule] = useState(ScheduleQuery.allPosts);

    const submitSchedule = () => {
        SubmitSchedule({
            variables: {
                body: schedule.body,
                id: schedule.id
            }
        }).then(() => {
            navigation.pop();
        }).catch(error => {
            console.log(error);
        })
    }

    useEffect(() => {
        navigation.setParams({ submit: submitSchedule });
    }, []);

    if (ScheduleQuery.loading) {
        return <ActivityIndicator size="large" />
    }
}

EditScheduleScreen.navigationOptions = ({ navigation }) => ({
    title: 'Edit Schedule',
    headerStyle: {
        backgroundColor: 'rgb(34, 33, 33)'
    },
    headerTintColor: '#F5F5F5',
    headerRight: <TouchableOpacity onPress={() => {
        const submit = navigation.getParam('submit');

        console.log(submit());
        navigation.navigate('Schedule')
    }}>
        <Feather style={[styles.saveIcon, { marginRight: 15 }]} name="check-circle" />
    </TouchableOpacity>
})

const ScheduleQuery = gql`
    query ScheduleQuery {
        allPosts{
            body
            id
        }
    }
`;

const SubmitSchedule = gql`
    mutation SubmitSchedule {
        allPosts{
            id
            body
        }
    }
`




export default compose(
    graphql(ScheduleQuery, { name: 'ScheduleQuery' }),
    graphql(SubmitSchedule, {
        name: 'SubmitSchedule',
        options: {
            refetchQueries: ["ScheduleQuery"]
        }
    })
)(EditScheduleScreen);

Примечание. Я удалил оператор возврата из компонента, поскольку он не имеет отношения к проблеме. Я знаю, что моя мутация неправильная, я просто не знаю, что делать. Нужно ли создавать новую схему в graph.cool, или я делаю что-то другое? Заранее спасибо!

...