У меня есть конечная точка GraphQL, которая возвращает случайное имя при каждом запросе.
Кажется, что объект запроса Apollo не будет повторно запрашивать, если сам запрос не изменяется.Вот фрагмент кода:
class RandomName extends React.Component {
render() {
const query = gql`
query name($gender: String, $top: Int) {
name(gender: $gender, top: $top) {
firstName
gender
surname
}
}
`;
return (
<Query
query={query}
variables={{ gender: this.props.gender, top: this.props.top }}
fetchPolicy="network-only"
>
{({ loading, error, data }) => {
if (loading) return <p>Loading...</p>;
if (error) return <p>Error</p>;
return <p>{name.firstName} {name.surname}</p>
}}
</Query>
}
}
Если переменные пола или верхней части изменятся, запрос будет выполнен повторно, но если у меня есть кнопка, которая вызывает повторный запрос, он не будет повторноЗапустите запрос, если запрос точно такой же, как в прошлый раз.Я прочитал документы, и это похоже на правильное поведение.
Вот код, который находится внутри родительского компонента:
onClick() {
this.setState({
sendGender: this.state.currentGender,
sendTop: this.state.currentTop,
});
this.forceUpdate();
}
render() {
<Button onClick={() => this.onClick()}>Get Name</Button>
}
Есть идеи?
Спасибо!