我有两个对象。
const resolver = {
Query: {
hi() {
return 'Hello Level Up';
}
}
};
const resolver2 = {
Query: {
resolutions() {
return [
{
_id: 'alksdfaqwef231adsf2',
name: 'Get stuff done!'
},
{
_id: 'wefqwefasdf',
name: 'Get stuff done 2!'
}
];
}
}
}每当我这样做的时候:
const resolvers = { ...resolver, ...resolver2 };第一个解析器被重写,只有当我console.log的时候才会有这个
{ Query: { resolutions: [Function: resolutions] } }我希望它有:
{ Query: { hi: [Function: hi], resolutions: [Function: resolutions] } }发布于 2018-03-01 05:42:54
前面已经提到过,但这就是扩散运算符的工作方式。要进行深度合并,您需要自己编写一个递归方法。或者使用一个非常流行的叫做deepmerge的小型库。
在您的情况下,这将是可行的:
const resolvers = {
Query: {
...resolver.Query,
...resolver2.Query
}
};发布于 2018-03-01 05:42:37
为了解决这个问题,我引入了一个名为lodash的包,并使用了merge方法。
const resolvers = merge(resolver, resolver2);输出:
{ Query: { hi: [Function: hi], resolutions: [Function: resolutions] } }https://stackoverflow.com/questions/49038816
复制相似问题