【问题标题】:How to set initial variables in relay modern?如何在现代继电器中设置初始变量?
【发布时间】:2017-10-14 11:01:51
【问题描述】:

在learnrelay.org开始中继,从教程中设置初始变量https://www.learnrelay.org/queries/variables/的代码是这样的:

export default Relay.createContainer(
  ListPage,
  {
    initialVariables: {
      sortOrder: 'id_DESC'
    },
    fragments: {
      viewer: () => Relay.QL`
        fragment on Viewer {
          allPokemons (first: 1000, orderBy: $sortOrder) {

我们通常像这样在经典中继中分配变量,但是在现代中继中这段代码会引发错误,我不知道为什么?

export default createPaginationContainer(TodoList,
  initialVariables: {
    first: 10,
  }, 
  fragments: {
  viewer: graphql`
    fragment TodoList_viewer on User {
      todos( # we need to expose todos on user so we can check if todo text already exist and sync in database 
        first: $first 
      ) @connection(key: "TodoList_todos") { #assign a key of connection that can be used shared updater

【问题讨论】:

  • 没有足够的信息让我们提供帮助。错误信息是什么?你做了什么调试?还要提供更多关于您正在使用的客户端的上下文,谁在调用这个 createPaginationContainer 函数
  • @JuanMendes 更新了问题,错误在第 6 行:viewer: graphql`
  • @JuanMendes 已经导入 createPaginationContainer,但我仍然无法分配初始变量
  • 正确提问会让别人想帮助你。没有人愿意浪费时间深入研究您的问题。让我们轻松为您提供帮助。 stackoverflow.com/help/how-to-askcodeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question 我特意要求你提供错误信息,而你给我的只是行号。也不要只给我一条错误消息,看看上面的链接,让你的问题更加独立。最后,网名“我是新手”不代表不用尽职调查
  • @JuanMendes 抱歉我忘了说明错误,第6行的webpack构建失败,我想我很清楚,因为我提供了更新前设置初始变量的代码,以及更新后的代码看起来很相似

标签: javascript graphql relayjs


【解决方案1】:

你不能在现代接力赛中使用initialVariables - see this link in the docs。 请注意,到目前为止,从这些函数中迁移出来的文档非常简短。

如果您现在正在处理此问题,RefetchContainer documentation 中有一个 pending update,它显示了如何根据变量正确获取和重新获取您的视图。

如果您只使用变量进行分页,check out PaginationContainer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 2012-02-18
    • 2016-04-02
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多