Javascript 使用变异钩子更新Graphql服务器中的数据

Javascript 使用变异钩子更新Graphql服务器中的数据,javascript,reactjs,react-native,graphql,graphql-mutation,Javascript,Reactjs,React Native,Graphql,Graphql Mutation,事实上,我是个新来的本地人。在我最近的项目中,我在使用UseHook更新服务器中的数据时遇到了一个问题。我已经附上了我正在使用它的文件 为供参考,我附上了操场的截图 注意:-我没有收到错误,服务器中的值也没有更新。如果我点击按钮。不需要重新蚀刻它并使用查询显示信息,只需更新即可 突变结构: 已发送graphql请求: import React,{Component,useState}来自'React'; 从“react native”导入{View、Text、StyleSheet、Dime

事实上,我是个新来的本地人。在我最近的项目中,我在使用UseHook更新服务器中的数据时遇到了一个问题。我已经附上了我正在使用它的文件

为供参考,我附上了操场的截图

注意:-我没有收到错误,服务器中的值也没有更新。如果我点击按钮。不需要重新蚀刻它并使用查询显示信息,只需更新即可

突变结构

已发送graphql请求

import React,{Component,useState}来自'React';
从“react native”导入{View、Text、StyleSheet、Dimensions、ScrollView、AsyncStorage、TouchableHighlight、Alert、KeyboardAvoidingView};
从“../../Header/TopHeader”导入TopHeader;
从“阿波罗助推”导入{gql};
从“../../SignIn/Input”导入输入;
从“../../Loader”导入{ScreenLoader};
从'@apollo/react-hooks'导入{UseStation};
导出常量更新用户详细信息=gql`
突变更新器($input:AccountInput!){
accountUpdate(输入:$input){
会计差错{
消息
}
使用者{
身份证件
电子邮件
名字
姓氏
}
}
}
`;
const getToken=async()=>{
const token=await AsyncStorage.getItem('token');
console.log(“Token=“+Token”);
返回令牌;
}
函数UpdateUserComponent({firstname,lastname}){
const[newfirstName,setNewfirstName]=useState(firstname);
const[newlastName,setNewlastName]=useState(lastname);
var token=getToken();
log(“内部更新用户组件”);
const[updateUser,{loading,data,error}]=useCommutation(更新用户详细信息{
标题:{
授权:令牌?`Bearer${token}`:''}
})
如果(正在加载)返回
如果(错误){
console.log(错误);
返回错误。。。
} 
控制台日志(数据);
返回(
setNewfirstName(e.target.value)}/>
setNewlastName(e.target.value)}/>
updateUser({variables:{“input”:{“firstName”:newfirstName,“lastName”:newlastName}}}>
保存更改
)
}
const width=Dimensions.get('window').width;
类AccountSettings扩展组件{
render(){
返回(
);
}
}
const styles=StyleSheet.create({
容器:{
弹性:1,
justifyContent:“flex start”,
对齐项目:“居中”,
paddingTop:20,
},
按钮布局:{
背景颜色:“#C5C5”,
宽度:宽度*85/100,
身高:45,
为内容辩护:“中心”,
对齐项目:“居中”,
边界半径:20,
},
按钮文字:{
颜色:“#9191”,
尺寸:14
},
})
导出默认帐户设置替换此:

  *onChange={e => setNewfirstName(e.target.value)}*
为此:

  *onChangeText={text => setNewfirstName(text)}*

它会起作用的

您是否在开发工具的网络选项卡中看到graphql请求?在这里,您可以最容易地跟踪请求是否实际发生?当按下TouchableHighlight时,您应该会看到一个名为“graphql”的任务出现在那里。如果没有,请求甚至不会被触发。我如何找到它,实际上我正在使用Expo运行应用程序我不完全确定Expo是否可用,因为我没有使用它,但我怀疑您可以在运行Expo时使用浏览器开发工具。右键单击页面的某个位置,它应该显示“Inspect Element”或“Inspect”或类似的内容。这将打开一个新窗口,您将看到一个选项卡“网络”,它将显示正在发生的所有请求。是的,当我按下按钮时,graphql请求被发送。我已添加该图像供您参考。当您单击该特定请求时,您将有权查看实际响应。在那里,你应该能够看到是否一切都是正确的。如果没有,它会给你一些关于遗漏什么的解释。图像是从查询中查看的,而不是您试图触发的实际变异。