Javascript 为什么graphql查询不能在react中工作?
在react项目中,我使用了一个查询来搜索github用户数据。查询如下:Javascript 为什么graphql查询不能在react中工作?,javascript,reactjs,graphql,Javascript,Reactjs,Graphql,在react项目中,我使用了一个查询来搜索github用户数据。查询如下: const GET_USER = (user) => ` { user(login: "${user}") { name login avatarUrl company gists{ totalCount } following{ totalCount } followers(last: 5){ edges{
const GET_USER = (user) => `
{
user(login: "${user}") {
name
login
avatarUrl
company
gists{
totalCount
}
following{
totalCount
}
followers(last: 5){
edges{
node{
id
name
avatarUrl
}
}
}
repositories(last: 5){
edges{
node{
id
name
}
}
}
}
}
`;
如果我只通过在followers
中添加一个名为email
的字段来更新查询,react应用程序将停止工作:
followers(last: 5){
edges{
node{
id
name
avatarUrl
email
}
}
}
如果在查询中添加有关组织的数据,也会发生同样的情况,如下所示:
organizations(last: 5){
edges{
node{
id
name
}
}
}
但是,当我在这个链接中执行相同的查询时,它会起作用
我的react项目位于链接:[中。查询位于App.js
文件中,该文件位于src
文件夹中
它停止工作,因为用户可能没有此类信息 我克隆了你的回购协议并添加了代码
<div>email:{user.following.email}</div>
至于追随者
(更新)
const Followers=({Followers})=>(
为SO更新了追随者:
{followers.edges.map(follower=>(
-
{follower&&follower.node&&follower.node.name&&(
名称:{follower.node.Name}
{follower&&follower.node&&follower.node.email&&(
电子邮件:{follower.node.Email}
))}
);
我的个人资料截图。一个关注者有电子邮件,另一个没有。
我把你的回购协议从你的问题中克隆出来
请确保您的令牌具有权限。在最激烈的时刻,我授予了对我的密钥的完全访问权限。请检查您的令牌!但问题不在于
用户。following
。问题在于followers.node
。followers.node&&followers.node.email&(email:{followers.node.email})
但它仍然不起作用它似乎起作用了。我会在map
函数中将名称更改为follower
,以防止冲突。另外,你在哪里使用代码?我添加了完整的函数,以防万一我像你那样做了,但我只是添加了电子邮件字段,没有起作用……我有文件,所以你可以看到我的update:[我刚刚更新了我的帖子,在像你问的那样更新代码之后,我收到了错误。这是另一个问题,但我更新了我的代码。我无法复制它,尝试了空用户,键入了任何内容。什么都没有。我甚至尝试了构建而不是运行开发代码
<div>email:{user.following.email || ""}</div>
{user && user.following && user.following.email &&
(<div>email:{user.following.email}</div>)
}
<p>
{user && user.organizations &&
<div>Organization name:{user.organizations.name}</div>
}
</p>
const Followers = ({ followers }) => (
<div>
<strong>Followers updated for SO:</strong>
<ul>
{followers.edges.map(follower => (
<li key={follower.node.id}>
<img src={follower.node.avatarUrl}/>
<div>
{follower && follower.node && follower.node.name && (
<div>Name:{follower.node.name}</div>) }
</div>
<div>
{follower && follower.node && follower.node.email && (
<div>Email:{follower.node.email}</div>) }
</div>
</li>
))}
</ul>
</div>
);