【发布时间】:2020-11-04 04:09:46
【问题描述】:
这是组件渲染的第一个错误:
POST http://localhost:4000/graphql 500(内部服务器错误)
[GraphQL 错误]:消息:所需类型“字符串!”的变量“$name”没有提供。
触发查询的第二个错误(提交表单):
this.props.movieByName is not a function...
这是代码
import React, { Component } from 'react';
import {HashLink as Link} from 'react-router-hash-link'
import { graphql } from 'react-apollo';
import {flowRight as compose} from 'lodash'
import { gql } from "apollo-boost";
const movieByName = gql`
query SomeName($name: String!){
movieByName(name: $name){
name
genre
year
}
}
`
class Header extends Component {
state = {
name: '',
genre: '',
year: ''
}
searchSubmit = (event) => {
event.preventDefault()
this.props.movieByName({
variables: {
name: event.target.value
}
})
console.log(this.props)}
render(){
return (
<div className="topnav">
<a className="logo" href="/">Movie Maker</a>
<div className="search-container">
<form onSubmit={this.searchSubmit}>
<Link smooth to="#form">Add Movies</Link>
<input type="text" placeholder="Search.." name="search"
onChange={(e) => this.setState({name: e.target.value})}/>
<button type="submit"><i className="fa fa-search"></i></button>
</form>
</div>
</div>
);}}
export default graphql(movieByName)(Header)
【问题讨论】:
-
嗨 mohdraqif,欢迎来到 StackOverflow! ??????
标签: javascript graphql react-apollo apollo-client graphiql