我正在使用 apollo
的 useQuery
钩子(Hook),并且我正在寻找一种更简洁的方法来在 data
时编写以下语句未定义
(或者如果这是可以实现的)。
// hook example
// const {data: {foo=[]}, loading} = useQuery(Q);
const {data:{foo}, loading} = {data: {foo: [1, 2, 3, 4]}, loading: false};
console.log(foo, loading);
当数据未定义
时:
// hook example
// const {data:{}, loading} = useQuery(Q);
// const {foo} = data;
const {data={}, loading} = {data: undefined, loading: true};
const {foo=[]} = data;
console.log(foo, loading);
感谢您的帮助,
最佳答案
你很接近。只需组合第二个片段中的默认分配即可。如果未定义,这会将 data
分配给空对象文字。如果 data
没有 foo
属性,它将为 foo
const { data: { foo = [] } = {}, loading} = { data: undefined, loading: true };
console.log(foo, loading);
关于JavaScript 解构 : Assigning defaults with dynamic properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58271573/