Gatsby-将状态属性传递给GraphQL查询变量/参数?

时间:2018-10-16 21:54:52

标签: reactjs graphql gatsby

我是gatsby和graphQL的新手,正在尝试用此堆栈构建一个网站,以显示音乐会/活动列表。

我的问题是:

是否有可能将数据从我的应用程序状态传递到我的查询变量。我在哪里将状态和graphQL查询联系起来?

这是我的代码:

class IndexPage extends Component {

state = {
  term: '',
  date: null,
}


onTermChange(term) {
  this.setState({ term });
}

render() {
  return (
  <Layout>
    <SearchForm
      onTermChange={this.onTermChange.bind(this)}
      value={this.state.term}
    />

    <Calendar
      onChange={date => this.setState({ date })}
      value={this.state.date}

    />

    <StaticQuery
      query={graphql`
      query ComingEvents {
        allEvent(sort: {fields: [dateAndTime], order: ASC}) {
          edges {
            node {
              id
              name
              dateAndTime
              venue
              ticketsLink
              city
              thumbnail {
                id
                url
              }
            }
          }
        }
      }`
      }
      render={ data => (
        <EventsList
        events={data.allEvent.edges}
         />
      )}
     />
</Layout>

);

} }

基本上这是我想要做的:

  1. 当搜索字段表单this.state.term的值更改时,我想将此作为$ name参数传递并查询新结果。
  2. 当日历this.state.date中选择的日期的值发生更改时,我想将其作为$ dateAndTime参数传递并查询新结果。

0 个答案:

没有答案