我从通过参数字段传递props的父组件调用此组件。但是,当我尝试调用变异函数时,我不断收到错误:mutate不是函数。我不明白是什么导致了这个问题,因为我几乎完全按照网上的阿波罗文档。
const OnboardingComplete = (props, { mutate }) => {
const currentUser = {
id: props.id,
firstName: props.first_name,
lastName: props.last_name
}
return (
<View style={styles.subcontainer}>
<Button bordered rounded iconLeft
style={styles.importButton}
onPress={() =>
mutate({ variables: { user: currentUser } })
}>
<Text style={styles.buttonText}>Complete </Text>
<Icon name='arrow-forward' />
</Button>
</View>
);
}
const addUser = gql`
mutation addUser($user: UserInput!) {
addUser(input: $user)
}
`;
export default graphql(addUser)(OnboardingComplete);
答案 0 :(得分:1)
当您使用df[with(df, order(-ave(alpha, ID))),]
HOC包装组件时,它会收到graphql
道具(如果您的操作是查询)或data
道具(如果您的操作是突变) )。
您的代码表明您希望第二个对象(道具除外)作为参数传递给您的组件:
mutate
相反,您的表达式应如下所示:
const OnboardingComplete = (props, { mutate }) => {
您应该致电const OnboardingComplete = (props) => {
访问mutate
。如果您想使用对象解构,您也可以随时执行:
props.mutate
答案 1 :(得分:0)
这也是我这边的问题。 我得到了解决方案,因为我将 createApolloClient 作为异步函数,它不应该是异步函数。然后工作正常!
async function createApolloClient(...)
这会导致错误。
function createApolloClient(...)
没有错误......奇怪但它解决了它。