ご覧のとおり、私は現在、previousResult
とmutationResult
を受け取り、毎回deletePostUpdateQuery
にそれらを渡しています。 (this function args) => deletePostUpdateQuery(...this function args, key)
のすべての引数を投げるだけでクリーナーがあるかどうか疑問に思っていました。呼び出された関数の引数を使用して関数を呼び出すためのテクニックはありますか?
updateQueries: {
NewPosts: (previousResult, { mutationResult }) => deletePostUpdateQuery(previousResult, mutationResult, 'newPosts'),
HotPosts: (previousResult, { mutationResult }) => deletePostUpdateQuery(previousResult, mutationResult, 'hotPosts'),
NotificationPosts: (previousResult, { mutationResult }) => deletePostUpdateQuery(previousResult, mutationResult, 'notificationPosts'),
OwnPosts: (previousResult, { mutationResult }) => deletePostUpdateQuery(previousResult, mutationResult, 'ownPosts'),
},
const deletePostUpdateQuery = (previousResult, mutationResult, key) => {
const deletedPostEdgeIndex = _.findIndex(previousResult[key].feed.edges, {
node: {
id: mutationResult.data.deletePost.id,
},
});
const result = update(previousResult, {
[key]: {
feed: {
edges: {
$splice: [[deletedPostEdgeIndex, 1]],
},
},
},
});
return result;
};
[** Function.prototype.applyの**](https://developer.mozilla.org/en-US/docs/ Web/JavaScript/Reference/Global_Objects/Function/apply)! –
@ibrahimmahrir:上記にはない、いいえ。 –