JavaScript 解构 : Assigning defaults with dynamic properties

标签 javascript react-hooks react-apollo

我正在使用 apollouseQuery 钩子(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/

相关文章:

reactjs - 当尝试调用 Apollo Client Query 时,我总是加载 : true, networkStatus: true

javascript - 如何在 Apollo Client React 中获取多个条件查询?

javascript - 了解 AJAX

javascript RegEx 仅检测空格\s

javascript - 过滤列表为空

reactjs - 钩子(Hook)和不可变状态

javascript - 编写一个 React hook 来处理鼠标单击时的多个 div 可见性

javascript - Jquery 对话框不会在表单元素中保持打开状态

javascript - 如何循环更新钩子(Hook)状态?

javascript - 有什么方法可以使用apollo客户端在reactjs中向graphql发送多部分表单请求