首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GraphQL对空响应的自动提取

GraphQL对空响应的自动提取
EN

Stack Overflow用户
提问于 2020-01-13 01:45:31
回答 1查看 92关注 0票数 0

我想从theMovieDB应用编程接口随机化电影。首先,我发送一个请求来访问最新条目的ID:

代码语言:javascript
复制
const { loading: loadingLatest, error: errorLatest, data: latestData, refetch: refetchLatest } = useQuery(
        LATEST_MOVIE_QUERY
    );

然后,我想从一个随机选择的id中获取数据,该ID介于1和最新id的编号之间。使用依赖于第一个查询的变量似乎会破坏应用程序,所以现在我只是在每次挂载组件时使用相同的电影:

代码语言:javascript
复制
const [
        movieState,
        setMovieState
    ] = useState(120);

    const { loading, error, data, refetch } = useQuery(ONE_MOVIE_BY_ID_QUERY, {
        variables : { movieId: movieState },
        skip      : !latestData
    });

我想按一个按钮来获取一个新的随机电影,但问题是API中的许多I导致删除条目,然后我得到一个错误。我想继续刷新,直到我得到一个好的响应,但我不知道如何实现它。现在,我的随机化函数看起来就像这样:

代码语言:javascript
复制
const randomizeClick = () => {
        let mostRecentID = latestData.latestMovie.id;
        setMovieState(Math.floor(Math.random() * mostRecentID));
    };

如果有人能帮我实现这一点,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2020-01-13 04:02:13

我认为你需要的是阿波罗的"useLazyQuery“功能。你可以在这里找到更多关于它的信息:https://www.apollographql.com/docs/react/data/queries/#executing-queries-manually

有了useLazyQuery,你可以很容易地改变你的变量,这意味着在某个事件(点击或类似的事件)后触发。挂载组件时将加载useQuery功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59706519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档