- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个组件将字符串 ( userToFetch
) 作为参数化查询中的变量参数传递。该组件如下所示:
// pages/index.jsx
import React from 'react';
import { useQuery } from '@apollo/react-hooks';
import gql from 'graphql-tag';
const GET_USERS = gql`
query users ($limit: Int!, $username: String!) {
users (limit: $limit, where: { username: $username }) {
username
firstName
}
}
`;
const Home = () => {
const userToFetch = 'jonsnow';
const {
loading,
error,
data,
} = useQuery(
GET_USERS,
{
variables: { limit: 2, username: userToFetch },
notifyOnNetworkStatusChange: true,
},
);
if (loading) {
return <p>Loading...</p>;
}
if (error) {
return <p>Error: {JSON.stringify(error)}</p>;
}
return (
<div>
<ul>
{data.users.map(user => {
return <li>{user.username} {user.firstName}</li>;
})}
</ul>
</div>
);
};
export default Home;
// /apollo-client.js
import { ApolloClient } from 'apollo-client';
import { InMemoryCache } from 'apollo-cache-inmemory';
import withApollo from 'next-with-apollo';
import { createHttpLink } from 'apollo-link-http';
import fetch from 'isomorphic-unfetch';
const GRAPHQL_URL = 'https://dev.schandillia.com/graphql';
const link = createHttpLink({
fetch, // Switches between unfetch & node-fetch for client & server.
uri: GRAPHQL_URL
});
// Export a HOC from next-with-apollo
// Docs: https://www.npmjs.com/package/next-with-apollo
export default withApollo(
// You can get headers and ctx (context) from the callback params
// e.g. ({ headers, ctx, initialState })
({ initialState, ctx }) => {
console.log('initialState', initialState);
console.log('ctx', ctx);
return new ApolloClient({
link: link,
cache: new InMemoryCache()
// rehydrate the cache using the initial data passed from the server:
.restore(initialState || {})
})
}
);
users
的集合:
"users": [
{
"username": "negger",
"firstName": "Arnold",
"lastName": "Schwarzenegger"
},
{
"username": "jonsnow",
"firstName": "Jon",
"lastName": "Snow"
},
{
"username": "tonystark",
"firstName": "Tony",
"lastName": "Stark"
}
]
}
where
一样运行条款不存在!它只返回所有结果,就好像正在运行的查询是:
users {
_id
username
firstName
}
jonsnow Jon
但它返回两个条目,
negger Arnold
和
jonsnow Jon
(尊重
limit
但完全忽略
where
)。现在,使用
jonsnow
运行相同的查询作为
where
https://dev.schandillia.com/graphql 中的参数:
{
users(where: { username: "jonsnow" }) {
_id
username
firstName
}
}
{
"data": {
"users": [
{
"_id": "5d9f261678a32159e61018fc",
"username": "jonsnow",
"firstName": "Jon",
}
]
}
}
apollo-client.js
中记录一些值:
console.log('initialState', initialState);
...
ROOT_QUERY.users({"limit":2,"where":{"username":"jonsnow"}}).0:
firstName: "Arnold"
username: "negger"
__typename: "UsersPermissionsUser"
...
最佳答案
Strapi 生成的模式为 where 属性提供了 JSON 类型,因此您必须将查询变量中的整个 where 部分作为 JSON 传递,因为变量没有被注入(inject)。
# Write your query or mutation here
query users($where: JSON) {
users(where: $where) {
username
firstName
}
}
{"where": {"username": "jonsnow"}}
关于next.js - useQuery : Query arguments not being read 的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58334265/
我正在尝试像这样使用 useQueries function App({ users }) { const userQueries = useQueries( users.map(us
我在 react 应用程序中有以下结构: 此提供程序使用 useQuery从后端获取对象。与 useContext我让应用程序的所有组件都可以访问它: const EventProvider
我正在使用 React 和 Apollo,我正在尝试使用 useQuery Hook 获取的数据来初始化状态,但在加载页面时出现“无法读取未定义的属性‘map’”。 const { loading,
我有一个接受输入参数的查询,比如日期 const { loading, data, error } = useQuery(GET_LIST, { variables: { in
所以我的例子: const Component = () => { const [param, setParam] = useState('defaul') const { isLoading
正如我们所知,当它的 props 或 state 发生变化时,react 组件会重新渲染。 现在我正在使用 useQuery来自 react-apollo包如下: import { gql, useQ
我是 Nextjs 的新手,对 Nextjs 中的客户端渲染和服务器端渲染有一些疑问 我看到有两种方法可以在 Nextjs 上获取数据。其中之一是使用 useQuery hook 但只能在 React
我对 graphQL 和 Apollo 相当陌生。我希望我能说清楚: 我正在使用 apollo/react-hook 获取数据 useQuery .之后我用数据填充表单,以便客户端可以更改它。完成后,
我正在使用 React Apollo 从我的服务器获取数据。当我的页面加载时,我使用 useQuery 来检索数据。这工作正常。问题是当我对搜索表单进行更改时,这会更新导致不需要的重新渲染的状态,从而
我正在使用“react-query”从组件调用 API。出于这个问题的目的,我从 API 返回一个模拟响应。 每次我打开下拉菜单时,都会调用 useQuery 函数,该函数又会调用模拟 API。 Ap
我正在使用“react-query”从组件调用 API。出于这个问题的目的,我从 API 返回一个模拟响应。 每次我打开下拉菜单时,都会调用 useQuery 函数,该函数又会调用模拟 API。 Ap
我正在尝试使用以下代码一次执行 urql useQuery 。但由于某种原因,每次重新渲染都会调用它。 根据文档 https://formidable.com/open-source/urql/doc
我有一个使用 Apollo 钩子(Hook)库的 useQuery 钩子(Hook)的 React 组件。我在测试此组件时遇到问题。这是我当前的设置。 import React from 'react
我有这样的代码 const [inputComment, setInputComment] = useState(''); const [ commentPost, { data: data4
试图了解 useQuery 如何在后台执行。当首先呈现 Booklist 组件时,调用 booklist 函数并调用 usequery Hook ,它返回加载设置为 true 并开始在后台执行 gra
我有循环 - forEach - 它为数组的每个元素找到 productId。我想使用 apollo 查询通过 productId 获取我的数据库。 怎么做? products.forEach(({
因为 Rules of Hooks ,不应该有条件地调用钩子(Hook)。那么如何使用 useQuery 有条件地获取数据? ?例如,假设我想在功能组件中获取数据,但前提是 someState ===
我正在尝试将 react-query 集成到我的 React 项目中。我有一个自定义 Hook - useBundles它从 GraphQl 端点获取数据,如下所示 - function useBun
我有以下组件,它有一个 date多变的。在每次重新渲染时,date变量正在更新。现在的问题是,当我将日期分配给查询变量时,graphql 一次又一次地无限获取。我调试了代码,发现 apollo 正在观
使用 react-apollo-hook 时如何将参数传递给 useQuery? 这不起作用: const { data, loading, error } = useQuery(GET_DATA
我是一名优秀的程序员,十分优秀!