React native 阿波罗一次

React native 阿波罗一次,react-native,react-apollo,apollo-client,React Native,React Apollo,Apollo Client,我正在研制新冠病毒-19跟踪器,我有个问题。 Apollo中是否有任何选项可以让React在每次按下按钮时获取一次graphql数据 现在我有了文本输入和按钮,但当我获取数据时,我无法在输入中键入其他国家,因为我立即出错 const Tile = () => { const [country, setCountry] = useState('Poland'); const [cases, setCases] = useState(0); const MY_QUERY = gq

我正在研制新冠病毒-19跟踪器,我有个问题。 Apollo中是否有任何选项可以让React在每次按下按钮时获取一次graphql数据

现在我有了文本输入和按钮,但当我获取数据时,我无法在输入中键入其他国家,因为我立即出错

const Tile = () => {
  const [country, setCountry] = useState('Poland');
  const [cases, setCases] = useState(0);

  const MY_QUERY = gql`
    query getCountryStats($country: String!) {
      country(name: $country) {
        todayCases
      }
    }
  `;

  const [getCountryStats, {data, loading, error}] = useLazyQuery(MY_QUERY, {
    variables: {
      country: country,
    },
    onCompleted: (data) => {
      setCases(data.country.todayCases);
    },
  });

  if (loading) return <Text>LOADING...</Text>;
  if (error) return <Text>Error!</Text>;

  return (
    <View>
      <CasesNumber>{cases}</CasesNumber>
      <FinderWrapper>
        <FinderInput
          onChangeText={(text) => {
            setCountry(text);
          }}
        />
        <FinderButton
          onPress={() => {
            getCountryStats();
          }}>
          <Text>FIND</Text>
        </FinderButton>
      </FinderWrapper>
    </View>
  );
};

export default Tile;

const Tile=()=>{
const[country,setCountry]=useState(“波兰”);
const[cases,setCases]=useState(0);
const MY_QUERY=gql`
查询getCountryStats($country:String!){
国家(名称:$country){
今天的案例
}
}
`;
const[getCountryStats,{data,loading,error}]=useLazyQuery(MY_QUERY{
变量:{
国家:国家,,
},
未完成:(数据)=>{
设定值(数据。国家。今天的情况);
},
});
如果(装载)返回装载。。。;
如果(错误)返回错误!;
返回(
{案例}
{
国家(文本);
}}
/>
{
getCountryStats();
}}>
发现
);
};
导出默认瓷砖;
尝试使用此

const Tile = () => {
  const [country, setCountry] = useState('Poland');
  const [cases, setCases] = useState(0);

  let inputValue = ‘’;


  const MY_QUERY = gql`
    query getCountryStats($country: String!) {
      country(name: $country) {
        todayCases
      }
    }
  `;

  const [getCountryStats, {data, loading, error}] = useLazyQuery(MY_QUERY, {
    variables: {
      country: country,
    },
    onCompleted: (data) => {
      setCases(data.country.todayCases);
    },
  });

  const onGetCountryStats = () => {
    
    setCountry(inputValue);
    getCountryStats();
  }

  if (loading) return <Text>LOADING...</Text>;
  if (error) return <Text>Error!</Text>;

  return (
    <View>
      <CasesNumber>{cases}</CasesNumber>
      <FinderWrapper>
        <FinderInput
          onChangeText={(text) => {
           inputValue = text;
          }}
        />
        <FinderButton
          onPress={() => {
           onGetCountryStats();
          }}>
          <Text>FIND</Text>
        </FinderButton>
      </FinderWrapper>
    </View>
  );
};

export default Tile;
const Tile=()=>{
const[country,setCountry]=useState(“波兰”);
const[cases,setCases]=useState(0);
让inputValue='';
const MY_QUERY=gql`
查询getCountryStats($country:String!){
国家(名称:$country){
今天的案例
}
}
`;
const[getCountryStats,{data,loading,error}]=useLazyQuery(MY_QUERY{
变量:{
国家:国家,,
},
未完成:(数据)=>{
设定值(数据。国家。今天的情况);
},
});
const onGetCountryStats=()=>{
设置国家(输入值);
getCountryStats();
}
如果(装载)返回装载。。。;
如果(错误)返回错误!;
返回(
{案例}
{
输入值=文本;
}}
/>
{
onGetCountryStats();
}}>
发现
);
};
导出默认瓷砖;