Я пытаюсь синхронизировать кеш apollo после обновления на сервере.
Должен ли я записывать в кэш напрямую или я могу получать только обновленные данные?
Я пытаюсь восстановить только обновленные данные, но все еще не работает.
У меня есть запрос programs(title: String)
, который выбирает все программы, если заголовок пуст, см. Код ниже:
class Programs extends React.Component {
render() {
const FIND_PROGRAMS = gql`query findPrograms($title: String) {
programs(title: $title) { id title description }
}`
return (
// The query fetch all programs if title is empty
<Query query={FIND_PROGRAMS} variables={{ title: '' }}>
{({ data, error, loading, refetch }) => {
if (loading) return <span>Loading</span>
if (error) return <span>{error.message}</span>
return (
<div>
{ data.programs.map(program => <ProgramSummary program={program} />)}
<button
onClick={() => axios
.patch('path/to/endpoint', payload)
.then(updatedProgram => {
// Should I update the cache myself with something like this ?
// client.writeData(...)
// Or should I refetch only updated Program like this ?
refetch({ title: updatedProgram.title }) // Not working yet
})
}
>
UpdateProgram
</button>
</div>
)
}}
</Query>
)
}
}
Моя повторная проверка не работает, я должен делать что-то не так.
Пожалуйста, помогите.