首页 > 解决方案 > 检查 grapqhl 查询返回的对象的形状

问题描述

我正在运行一个返回对象的 GraphQL 查询。我确定返回了一个对象,但是当我尝试response在控制台上打印时,我得到了undefined

    try {
      const response = await loadUsers({
        where: { phoneNumber: newPhoneNumber },
      });
      //console.log('ID', response.users.nodes[0].id);
      console.log('response from loadUsers is', JSON.stringify(response));
    }
catch (err) {
      console.log('err', err);
    }
  };

以前当我使用回调时,我做了这样的事情并且它有效:

  const getFriendId = React.useCallback(
    (data: UsersLazyQueryHookResult) => {
      if (data) {
        if (data.users.nodes.length == 0) {
          Alert.alert('User Not Found');
        } else {
          setUserData(data);
          console.log('ID', data.users.nodes[0].id);
        }
      }
    },
    [addFriend],
  );

  const [loadUsers] = useUsersLazyQuery({
    onCompleted: getFriendId,
    onError: _onLoadUserError,
  });

现在,数据和响应是相同的对象。我需要检查,response.users.nodes[0].id但我无法这样做。有没有其他方法可以查看返回的内容?

或者,如果我不打印响应,而是打印console.log('ID', response.users.nodes[0].id)

err – TypeError: undefined is not an object (evaluating 'response.users')

我也尝试使用 {response} 而不是响应,但这也不起作用。我还能如何获得返回的 id 值?

标签: javascriptreactjstypescriptreact-nativegraphql

解决方案


推荐阅读