我在前端使用React,Apollo和GraphQL,在后端使用Django,Python和Graphene。
我想实现search_bar,当用户单击搜索按钮时,我想用用户输入执行GraphQL查询。
在后端,我要抓取该字符串,然后将其传递给函数,然后从要传递回前端的函数返回结果。
我的代码如下:
前
export const GET_RESULTS = gql`
query SearchVinResults($vin: String!){
searchVinResults(vin: $vin) {
id
label
url
}
}`;
class VinSearch extends Component {
onVinSearch(e) {
e.preventDefault();
const {value, client: {query}} = this.props;
query({query: GET_RESULTS, variables: { vin: value }});
}
render() {
const {value, clearSearch, onChange} = this.props;
return (
<SearchField
onChange={e => onChange(e)}
clearSearch={() => clearSearch()}
value={value}
clearIcon="fal fa-times"
placeholder="Search VIN"
withButton={true}
buttonStyles={{borderLeftWidth: 0}}
onClick={e => this.onVinSearch(e)}
/>
);
}
}
export default withApollo(VinSearch);
后端
类查询(对象): search_vin_results = ???? #我需要在这里做什么
def resolve_search_vin_results(self, info, **kwargs):
# Here I want to do something like
vin = info['vin']
results = get_vins(vin)
return results
有什么主意吗?