Javascript 解构:使用动态属性分配默认值
Javascript destructuring: Assigning defaults with dynamic properties
我正在使用 apollo
的 useQuery
钩子,我正在寻找一种更简洁的方法来编写以下语句,当 data
为 undefined
(或如果这甚至可以实现的话)。
// hook example
// const {data: {foo=[]}, loading} = useQuery(Q);
const {data:{foo}, loading} = {data: {foo: [1, 2, 3, 4]}, loading: false};
console.log(foo, loading);
当数据为 undefined
:
// 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);
我正在使用 apollo
的 useQuery
钩子,我正在寻找一种更简洁的方法来编写以下语句,当 data
为 undefined
(或如果这甚至可以实现的话)。
// hook example
// const {data: {foo=[]}, loading} = useQuery(Q);
const {data:{foo}, loading} = {data: {foo: [1, 2, 3, 4]}, loading: false};
console.log(foo, loading);
当数据为 undefined
:
// 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);