Обновление отладки:
Итак, мы пошли немного дальше в отладке, и похоже, что 'client: root' не может вообще получить доступ к соединению.
Для отладки всего хранилища мы добавили эту строку в функцию обновления после экспорта переменной хранилища из реле / среды.
console.log(relayEnvStore.getSource().toJSON())
Если я использую .get()
с указанными c строка client:root:__ItemList_items_connection
, я могу получить доступ к записям, которые искал, но это определенно не красиво.
const testStore = store.get('client:root:__ItemList_items_connection')
console.log(testStore.getLinkedRecords('edges'))
Оригинал:
Я используя Relay Modern и пытаясь обновить кеш после завершения мутации updateItem
с помощью средства обновления. Вызов ConnectionHandler.getConnection('client:root', 'ItemList_items')
возвращает неопределенное значение.
Я не уверен, что это потому, что я пытаюсь использовать 'client: root' в качестве родительской записи или есть проблема с моим кодом. Кто-нибудь сталкивался с подобной проблемой?
Вот paginationContainer:
const ItemListPaginationContainer = createPaginationContainer(
ItemList,
{
node: graphql`
fragment ItemList_node on Query
@argumentDefinitions(count: { type: "Int", defaultValue: 3 }, cursor: { type: "String" }) {
items(first: $count, after: $cursor) @connection(key: "ItemList_items") {
edges {
cursor
node {
id
name
}
}
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
}
}
`
},
{
direction: 'forward',
getConnectionFromProps: props => props.node && props.node.items,
getVariables(props, { count, cursor }) {
return {
count,
cursor
}
},
query: graphql`
query ItemListQuery($count: Int!, $cursor: String) {
...ItemList_node @arguments(count: $count, cursor: $cursor)
}
`
}
)
Вот мутация:
const mutation = graphql`
mutation UpdateItemMutation($id: ID!, $name: String) {
updateItem(id: $id, name: $name) {
id
name
}
}
`
Вот обновитель:
updater: (store) => {
const root = store.getRoot()
const conn = ConnectionHandler.getConnection(
root, // parent record
'ItemList_items' // connection key
)
console.log(conn)
},