从函数返回的数组解构中的花括号

时间:2019-12-22 05:32:34

标签: javascript reactjs

在这个自定义钩子的返回中,我不明白花括号如何工作(或它们应该做什么)。我知道这是在破坏性,我只是不了解他们的需要。谁能解释?

( SELECT ts, ... FROM TA )
UNION ALL
( SELECT ts, ... FROM TB )
ORDER BY ts

1 个答案:

答案 0 :(得分:4)

基本上,您将返回一个数组,该数组在第0个索引处包含一个Object,在第二个索引处包含setUrl方法。

返回值将隐式转换为:

[{
  data: data,
  isLoading: isLoading,
  isError: isError
}, setUrl]

这就是为什么您可以在组件中像这样使用它的原因:

import React, { useState } from "react";
import { useHackerNewsApi } from "./useHackerNewsAPI";

export default ({ name }) => {
  const [{ data, isLoading, isError }, setUrl] = useHackerNewsApi();
  return <h1>
    <pre> Data - { JSON.stringify(data) }</pre>
    <pre> isLoading - { isLoading }</pre>
    <pre> isError - { isError }</pre>
  </h1>;
};

  

这是您推荐的Working Demo