我从 axios thunk 收到以下错误:
ExceptionsManager.js:82 messed up in createMeeting: Error: Request failed with status code 400
at createError (createError.js:16)
at settle (settle.js:17)
at XMLHttpRequest.handleLoad (xhr.js:59)
at XMLHttpRequest.dispatchEvent (event-target.js:172)
at XMLHttpRequest.setReadyState (XMLHttpRequest.js:572)
at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:394)
at XMLHttpRequest.js:507
at RCTDeviceEventEmitter.emit (EventEmitter.js:189)
at MessageQueue.__callFunction (MessageQueue.js:366)
at MessageQueue.js:106
问题在于我的 axios 请求而不是我的 graphql 架构,因为我能够使用(我的 ngrok url)/graphiql 以及 localhost/graphql 来完成这个突变。我的查询对于 axios 或其他东西来说太长了吗?我已经控制台记录了我输入的所有信息,并且格式正确,但同样,这些信息甚至没有发送到我的服务器。此外, data.data.newMeeting 看起来很奇怪,但那部分实际上是正确的。这是我的想法:
export const createMeeting = (chatId, userId, invitation) => {
return async dispatch => {
try {
const dateString = invitation.date.toDateString()
let {data} = await axios({
url: `${url}/graphql`,
method: 'POST',
data: {
query: `mutation{
newMeeting(chatId:${chatId},
userId:${userId},
latitude:${invitation.coords[0]},
longitude:${invitation.coords[1]},
name:"${invitation.name}",
rating:${invitation.rating},
address:"${invitation.address}",
date:"${dateString}"){
location
name
rating
date
senderId
chatId
}
}`
}
})
dispatch(setCurrentMeeting(data.data.newMeeting))
clearInvitation()
} catch (error) {
console.error('messed up in createMeeting: ', error)
}
}
}