为什么 Relay 的 NODE_DELETE 不更新剩余节点列表
Why doesn't Relay's NODE_DELETE update the list of remaining Nodes
我有一个 NODE_DELETE
突变,可以从类别列表中删除 Category
。即使它提供了正确的 deletedIDFieldname
,类别列表在我刷新页面之前不会更新。
我在这里错过了什么吗?感谢您的任何提示!
import Relay from 'react-relay';
export default class DeleteCategoryMutation extends Relay.Mutation {
getMutation() {
return Relay.QL`mutation{deleteCategory}`;
}
getFatQuery() {
return Relay.QL`
fragment on DeleteCategoryPayload {
category {
id
},
viewer {
allCategories
}
}
`;
}
getConfigs() {
return [{
type: 'NODE_DELETE',
parentName: 'viewer',
parentID: this.props.viewer.id,
connectionName: 'allCategories',
deletedIDFieldName: 'category{id}',
}];
}
getVariables() {
return {
id: this.props.categoryId,
};
}
getOptimisticResponse () {
return {
deletedId: this.props.categoryId,
viewer: this.props.viewer.id,
}
}
}
我认为您需要像下面这样进一步扩展 getFatQuery
。
getFatQuery() {
return Relay.QL`
fragment on DeleteCategoryPayload {
category {
id
},
viewer {
allCategories(first: 1000) {
edges
}
}
}
`;
}
希望这对您有所帮助。但我同意这有点棘手,在这种情况下 Relay 应该可以帮助你...
我有一个 NODE_DELETE
突变,可以从类别列表中删除 Category
。即使它提供了正确的 deletedIDFieldname
,类别列表在我刷新页面之前不会更新。
我在这里错过了什么吗?感谢您的任何提示!
import Relay from 'react-relay';
export default class DeleteCategoryMutation extends Relay.Mutation {
getMutation() {
return Relay.QL`mutation{deleteCategory}`;
}
getFatQuery() {
return Relay.QL`
fragment on DeleteCategoryPayload {
category {
id
},
viewer {
allCategories
}
}
`;
}
getConfigs() {
return [{
type: 'NODE_DELETE',
parentName: 'viewer',
parentID: this.props.viewer.id,
connectionName: 'allCategories',
deletedIDFieldName: 'category{id}',
}];
}
getVariables() {
return {
id: this.props.categoryId,
};
}
getOptimisticResponse () {
return {
deletedId: this.props.categoryId,
viewer: this.props.viewer.id,
}
}
}
我认为您需要像下面这样进一步扩展 getFatQuery
。
getFatQuery() {
return Relay.QL`
fragment on DeleteCategoryPayload {
category {
id
},
viewer {
allCategories(first: 1000) {
edges
}
}
}
`;
}
希望这对您有所帮助。但我同意这有点棘手,在这种情况下 Relay 应该可以帮助你...