When the "appID" value is first passed on the form, GraphQL returns an expected value. Later when "profileID" is passed in addition to the appID, the computed result is unchanged.
Also, wanted to mention that The API is expecting - "appId": 714,"profileIds": [49] The parameter I'm passing is - appId: "714", profileId: "49"
The Query is as:
const MA_ESTIMATE_AUDIENCE_SIZE_QUERY = gql`
query MAEstimateAudienceSizeQuery(
$appId: ID!
$additionalAppId: ID
$profileId: ID
$userActivityType: MaUserActivitySegmentType
$userActivityDateRange: MaUserActivityDateRange
) {
maEstimateCampaignAudienceSize(
appId: $appId
additionalAppId: $additionalAppId
profileId: $profileId
userActivityType: $userActivityType
userActivityDateRange: $userActivityDateRange
)
}
`;
Its used as follows: I'm specifically expecting maEstimateCampaignAudienceSize to compute the correct result taking into account appID & profileID which are query parameters passed into the scope correctly.
return (
<Query<
MAEstimateAudienceSizeQuery,
MAEstimateAudienceSizeQueryVariables
>
query={MA_ESTIMATE_AUDIENCE_SIZE_QUERY}
variables={variables}
onCompleted={data => {
if (!data) {
return;
}
const maEstimateCampaignAudienceSize = (data as MAEstimateAudienceSizeQuery)
.maEstimateCampaignAudienceSize;
// Set this value as the last known value if it's not already the last value.
if (
maEstimateCampaignAudienceSize &&
previousEstimatedAudienceSize !==
maEstimateCampaignAudienceSize
) {
setPreviousEstimatedAudienceSize(
maEstimateCampaignAudienceSize
);
}
}}
>
{({ data, loading, error }) => {
const maEstimateCampaignAudienceSize =
data && data.maEstimateCampaignAudienceSize;
// Pass undefined if loading as well as if `estimatedAudienceSize` is falsy.
const estimatedAudienceSize =
loading || !maEstimateCampaignAudienceSize
? undefined
: maEstimateCampaignAudienceSize;
return children({
loading,
estimatedAudienceSize,
estimatedAudienceSizeFormatted:
estimatedAudienceSize &&
prettifyAudienceSize(estimatedAudienceSize),
error,
});
}}
</Query>
);