React Apollo 从状态动态创建查询

2023-11-21

这是一个模型情况 我的数据库中有一些字段,比如颜色、大小、高度......

我可以获取这些字段并将其显示给可以选择这些字段的用户,然后将它们设置为组件状态

我想要实现的是动态创建GQL查询(不是查询变量)来自存储在状态中的这些字段

Example

//import react gql ....
class MyComponent extends Component {

constructor(props){
   super(props)
   this.state = {
     fields : []
   }
}

render(){
...
}

componentWillMount(){
    fetch(...)
      .then(fields => this.setState({fields}))
   }

}

export default graphql( --->state => CREATE_QUERY_DYNAMICALLY_FROM_FIELDS(state.fields)<----,{..some options})

有没有办法在查询创建期间访问组件状态?

或者其他一些方法?

任何想法表示赞赏


class MyComponent extends Component {

   constructor(props){
       super(props)
       this.state = {
         fields : []
       }
   }

   render(){
   ...
   }

   componentWillMount(){
       const query = gql`
           query myDynamicQuery {
               viewer {
                   endpoint {
                       ${this.state.fields.join('\n')}
                   }
               }
           }
       `
       this.props.client.query({ query }).then((res) => ...)
   }
}
export default withApollo(MyComponent)

希望这有效:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Apollo 从状态动态创建查询 的相关文章

随机推荐

  • JQuery.Validate CDN 后备

    这个问题的一些后续内容 使用 Google 托管 jQuery 的最佳方式 但回退到我在 Google 上的托管库失败 因此我可以检测 JQuery CDN 是否已关闭并允许这样做
  • 将自定义视图放入 UITableView 中

    我有一个常规样式的 UITableView 它具有白色背景和用于分隔行的灰色水平线 我有另一个自定义 UIView 它只是一个填充红色的 100x100 矩形 我怎样才能将后者放入前者中 使其出现over水平线 但仍然是表视图的 一部分 因
  • 为什么在 try/ except 块中使用 Python 的“else”子句? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 尝试其他 我没有看到它的好处 至少根据我刚刚在 Dive Into Python 中读到的示例 try from EasyDialogs import AskPassword excep
  • 根据当前设置的主题获取attr颜色值

    在我的活动中 我保持SuperActivity 我在其中设置主题 public class SuperActivity extends Activity Override protected void onCreate Bundle sav
  • Play 2.4 - Slick 3.0.0 - 删除不起作用

    我正在尝试升级到 Slick 3 0 0 和 Play 2 4 Scala 但是deleting行不起作用 在下面的代码中 一切正常 查询所有行 插入和更新 除了删除 package dao import scala concurrent
  • go 如何检查文件是否可执行?

    我如何编写一个函数来检查文件是否在 Go 中可执行 给定一个os FileInfo 我可以得到os FileInfo Mode 但我在尝试解析权限位时停滞不前 测试用例 usr bin env bash function setup mkd
  • 在 R 中自定义传单弹出窗口

    我正在使用 RStudio 创建 choropleth 传单地图 我将国家 地区和网址作为导入到 R 的 shapefile 中的属性 我希望在最终地图的弹出窗口中将国家 地区名称和 URL 显示为超链接 下面是我迄今为止使用过的代码 m
  • AuthenticationManager.SignIn() 不存在于 AuthenticationManager 类中

    我正在尝试使用AuthenticationManager class SignIn 我是这样做的 AuthenticationManager SignIn identity 但它说SignIn那里不存在 通往AuthenticationMa
  • 在开发模式下从应用程序创建 Facebook 广告素材

    我正在尝试使用以下请求从我的测试应用程序在 Facebook 中创建广告创意 大部分取自 Python SDK 文档 here Message Call was not successful Method POST Path https g
  • JBOSS 7.1.0 错误 - 无法找到类 org.jboss.resteasy.core.AsynchronousDispatcher 的公共构造函数

    我正在尝试将基于 Spring MVC 的 REST 应用程序迁移到 Jboss 7 1 0 启动时 Jboss 初始化显示一切都已正确启动 所有 war 文件均已成功部署 我在 Spring MVN 和 Jboss RestEasy 服务
  • 按索引对 pandas Series 进行排序

    我有一个名为的 Pandas 数据框pd 然后我使用以下命令提取该数据帧的一列中唯一值的数量 b df groupby Region size b 是 Pandas 系列对象 如下所示 In 48 b Out 48 Region 0 8 1
  • 在 Docker 中运行 nuxt js 应用程序

    我正在尝试在 docker 容器中运行 nuxt 应用程序 为此 我创建了以下 Dockerfile FROM node 6 10 2 RUN mkdir p app EXPOSE 3000 COPY app WORKDIR app RUN
  • 在 iTextSharp 中从右到左(双向)语言反转字符串

    我正在使用 iTextSharp C iText 端口 从文本 html 创建 pdf 我的大部分文字都是希伯来语 一种从右到左的语言 我的问题是 PDF 以相反的方式显示 RTL 语言 因此我需要以一种仅反转 RTL 文本而不反转任何英文
  • 在 Visual Studio 中打开的文件名旁边的数字是什么?

    在Visual Studio中 文件名旁边的数字代表什么 这是完全相同的文件 Here is an example 它在几周前开始这样做 但我找不到任何有关此的信息 有没有办法禁用此功能 对我来说 每当我为该文件打开一个新窗口时 它就是窗口
  • 如何在 C# 中反序列化 XML 命名空间 (System.Xml.Serialization)?

    我只是在做最后的润色Zthes格式反序列化器 System Xml Serialization 在元素 thes 中使用命名空间 dc 所有 term 元素都可以很好地反序列化 因为它们没有名称空间 但我无法弄清楚如何告诉反序列化器 the
  • count() 与量角器中的长度

    根据文档 有两种方法可以获取内部有多少个元素ElementArrayFinder 的结果element all call myclass length 记录在案here 数组有length等于length所发现的元素ElementArray
  • 如何使用 Google Maps API 捕获多边形的点位置?

    使用 Google Maps API 绘图管理器 我想收集用户绘制的多边形中每个点的位置 我知道有一个getPath 功能 但我不知道在哪里使用它 这是我迄今为止拥有的所有代码 var map var drawingManager func
  • 在 Javascript 中,从不在数组中的对象中删除键

    假设我有一个包含许多键的对象列表 并且我只想保留其中的某些键 我就是这样做的 SO 上其他好的解决方案的问题是 如果键中不存在键以保留它 它仍然会添加一个键 值未定义 let data a 1 b 2 c 3 a 1 c 3 d 4 con
  • 如何在 google chrome 上删除 iframe 的水平滚动条

    我想要启用垂直滚动并关闭水平滚动 using 滚动 否 不是我想要的 因为我仍然想要垂直滚动 我尝试过将其添加到CSS中 myiframe overflow x hidden overflow y auto 但它仍然显示仅适用于 Chrom
  • React Apollo 从状态动态创建查询

    这是一个模型情况 我的数据库中有一些字段 比如颜色 大小 高度 我可以获取这些字段并将其显示给可以选择这些字段的用户 然后将它们设置为组件状态 我想要实现的是动态创建GQL查询 不是查询变量 来自存储在状态中的这些字段 Example im