- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个集合和一个突变,可以向其中添加新项目。成功突变后,我无法让 Relay Modern 更新 UI。
我有一个带有以下查询:
属性的PaginationContainer
设置
{
query: graphql`
fragment ContactsList_query on WPQuery {
id
contacts: posts(
first: $count,
after: $cursor
post_type: $postType,
order: $order,
category_name: $categoryName
) @connection(key: "ContactsList_contacts" ) {
edges {
node {
id
...ContactListItem_contact
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
`
},
正确获取。然后我有一个突变可以将联系人添加到此列表中。配置 RANGE_ADD
或 updater:
回调技术根本不起作用。
我像这样触发这个突变
onSave = (fields) => {
insertPost(
fields.toJS(),
this.props.query.id,
this.props.relay.environment
);
}
没有错误,只是没有更新。
const mutation = graphql`
mutation InsertPostMutation(
$data: InsertPostInput!
) {
insert_post(input: $data) {
wp_query {
id
}
postEdge {
node {
id
title
}
}
}
}
`;
export default function insertPost(data, id, environment) {
const variables = {
data,
};
commitMutation(
environment,
{
mutation,
variables,
onCompleted: (response, errors) => {
console.log('Response received from server.')
},
onError: err => console.error(err),
configs: [{
type: 'RANGE_ADD',
parentID: id,
connectionInfo: [{
key: 'ContactsList_contacts',
rangeBehavior: 'append',
}],
edgeName: 'postEdge'
}],
// updater: (store) => {
// // const inspector = new RecordSourceInspector(store)
// const payload = store.getRootField('insert_post')
// const newEdge = payload.getLinkedRecord('postEdge')
// const proxy = store.get(id)
// // Conn is always undefined here
// const conn = ConnectionHandler.getConnection(proxy, 'ContactsList_contacts')
// ConnectionHandler.insertEdgeAfter(conn, newEdge)
// }
},
);
}
最佳答案
好吧,我可以通过更改线路来解决这个问题
@connection(key: "ContactsList_contacts")
至
@connection(key: "ContactsList_contacts", 过滤器: [])
似乎无法找到连接,否则...
https://facebook.github.io/relay/docs/pagination-container.html#connection-directive
然后使用updater
函数找到连接。
关于javascript - 中继现代突变,RANGE_ADD/Append,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46230666/
我有一个使用 GraphQL 中继连接的页面,它获取 drafts . query { connections { drafts(first: 10) {
我正在尝试理解RANGE_ADD。我已经为 RANGE_ADD 提供了突变配置以及所有必需的信息。我使用 viewer 命名约定,将我的连接嵌套在 viewer 中。下面是我完整的中继突变的样子...
我有一个集合和一个突变,可以向其中添加新项目。成功突变后,我无法让 Relay Modern 更新 UI。 我有一个带有以下查询:属性的PaginationContainer设置 { qu
我有以下突变: export default class AddTaskMutation extends Relay.Mutation { static fragments = { cla
我是一名优秀的程序员,十分优秀!