【发布时间】:2018-10-19 04:35:36
【问题描述】:
我正在尝试从 DB 获取单个产品,但我一直收到错误消息: 来自 GraphQL 的“预期字符串,找到字符串”。
代码如下:
class ProductDetail extends React.Component {
constructor(props) {
super(props);
}
render() {
console.log(JSON.stringify(this.props.id));
return <Query query={GET_PRODUCT} variables={{_id: JSON.stringify(this.props.id)}}>
{({ loading, error, data }) => {
if (loading) return <ReactLoading type="spin" className="spinner" color={"black"}></ReactLoading>
if (error) return <Alert color="danger">{error.message}</Alert>
return (
<div>
{data.products.map(p => (
console.log(data)
))}
</div>
)
}}
</Query>
}
}
const GET_PRODUCT = gql`
{
product(_id: String) {
brand
}
}
`
export default ProductDetail;
我注意到 $ 登录查询定义,尝试过,但它返回: “预期的字符串,找到 $”。
【问题讨论】:
-
附带说明,您不需要对
this.props.id进行字符串化。看起来您的查询旨在返回单个产品,但在您的Query组件中,您实际上是在映射多个产品。但这与您的实际问题无关。
标签: javascript reactjs apollo react-apollo