Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 无法读取属性';id';未定义的。变量';id';已强制非Null类型为Null值';身份证';_React Native_Aws Appsync - Fatal编程技术网

React native 无法读取属性';id';未定义的。变量';id';已强制非Null类型为Null值';身份证';

React native 无法读取属性';id';未定义的。变量';id';已强制非Null类型为Null值';身份证';,react-native,aws-appsync,React Native,Aws Appsync,我正在使用react native gifted chat,并试图找出如何为我的变体参数设置_id、text、createdAt、userid和name。我收到以下错误变量id强制为空值或无法读取属性“id”未定义。我的主要问题是如何设置messageid和messagetext。我正在使用react native gifted与AWS聊天 export-const-createMessage=`mutation-createMessage($id:id!$groupchatid:id!$mes

我正在使用react native gifted chat,并试图找出如何为我的变体参数设置_id、text、createdAt、userid和name。我收到以下错误
变量id强制为空值
无法读取属性“id”未定义
。我的主要问题是如何设置messageid和messagetext。我正在使用react native gifted与AWS聊天

export-const-createMessage=`mutation-createMessage($id:id!$groupchatid:id!$message:String!$createdUser:String!$createdTime:String!){
createMessage(输入:{id:$id groupchatid:$groupchatid,message:$message,createdUser:$createdUser createdTime:$createdTime}){
身份证件
群组聊天ID
消息
createdUser
创建时间
}
}`;
const user=Auth.currentAuthenticatedUser();
this.setState({username:user.username});
}
messagesStation=async()=>{
const AddMessage={message:this.state.messages,createdUser:this.state.username,groupchatid:this.state.groupchatname};
const newGroupChatMessage=await API.graphql(graphqlOperation(createMessage,AddMessage));
log(JSON.stringify(newGroupChatMessage));
};
组件willmount(){
这是我的国家({
信息:[
{
_id:id,
文本:消息,
createdAt:新日期(),
用户:{
_id:createdUser,
名称:createdUser,
阿凡达:'https://placeimg.com/140/140/any',
},
},
],
})
}
componentDidMount(){
const{navigation}=this.props;
const value=navigation.getParam('value')
this.setState({groupchatname:value})
}
onSend(消息=[]){
this.setState(previousState=>({
消息:giftechat.append(previousState.messages,messages),
}))
}
render(){
const{groupchatname}=this.state;
返回(
{groupchatname}
this.onSend(messages),this.messagesStation}
使用者={{
_id:这个用户,
名称:this.user,
阿凡达:'https://placeimg.com/140/140/any'
}}```

您已经将
id
定义为一个参数

createMessage($id: ID! $groupchatid: ID! $message: String! $createdUser: String! 
$createdTime: String!)

忘了辩论

const AddMessage = { 
 id:"valu...." //here
 message: this.state.messages, 
 createdUser: this.state.username,
 groupchatid: this.state.groupchatname 
     };

我的问题是将messageid和message text设置为什么。这是我一直试图解决的第一个问题。更正第一个问题
变量id强制了null值
。接下来,您是否使用amplify?要更正该问题,我将模式中的id设置为null。我删除了!因此createMessageInput中的id可以为null。但我仍然无法解决此问题是的,我正在与amplify一起工作,id是自动生成的,所以你可以从变异输入中删除id,componentWillMount中发生了什么,是变异之前还是之后,请附上完整的代码,不清楚我相信@Alex是对的。你要么需要提供“id”AddMessage对象中的变量,或者您需要更改查询,使其不需要类型为
ID!
的变量。将查询签名更改为
变异createMessage($groupchatid:ID!$message:String!$createdUser:String!$createdTime:String!){createMessage(输入:{groupchatid:$groupchatid,message:$message,createdUser:$createdUser createdTime:$createdTime}}{id groupchatid message createdUser createdTime}
(例如,删除“id”引用)应该可以完成这项任务。
const AddMessage = { 
 id:"valu...." //here
 message: this.state.messages, 
 createdUser: this.state.username,
 groupchatid: this.state.groupchatname 
     };