Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 功能组件的允许语法';你的返回声明?(反应)_Javascript_Reactjs_Jsx - Fatal编程技术网

Javascript 功能组件的允许语法';你的返回声明?(反应)

Javascript 功能组件的允许语法';你的返回声明?(反应),javascript,reactjs,jsx,Javascript,Reactjs,Jsx,今天在阿波罗文档中发现了以下代码。我认为当你在一个功能组件中有一个多行返回语句时,你必须把所有内容都用括号括起来?因此,在return之后立即打开括号,如下所示:return() 我不明白为什么这个返回语句有效: export default function ExchangeRates() { const { loading, error, data } = useQuery(EXCHANGE_RATES); if (loading) return <p>Loading.

今天在阿波罗文档中发现了以下代码。我认为当你在一个功能组件中有一个多行返回语句时,你必须把所有内容都用括号括起来?因此,在return之后立即打开括号,如下所示:
return(

我不明白为什么这个返回语句有效:

export default function ExchangeRates() {
  const { loading, error, data } = useQuery(EXCHANGE_RATES);

  if (loading) return <p>Loading...</p>;
  if (error) return <p>Error :(</p>;

  return data.rates.map(({ currency, rate }) => (
    <div key={currency}>
      <p>
        {currency}: {rate}
      </p>
    </div>
  ));
}
导出默认函数ExchangeRates(){
const{loading,error,data}=useQuery(汇率);
如果(加载)返回加载…

; if(error)返回错误:(

; 返回data.rates.map({currency,rate})=>( {货币}:{汇率}

)); }

编辑:建议的答案并没有回答我的问题。我希望你能给出一个同样针对JSX的答案。例如,有人说()甚至没有必要在这里包装JSX,所以我特别困惑,为什么这篇文章中的内容要在()中包含一个多行返回语句.

可能是因为多行jsx已经包装在Map中,这是否回答了您的问题?@cheznead它通常用于防止,在您的示例中,没有必要,因为JavaScript没有歧义。只有当
return
语句单独在它的行中时,多行才需要它。我不会说它是相反的cts没有任何问题,但我同意这个具体的答案没有解释为什么。它解释了为什么。术语multiline在您的案例中是误导性的,因为您的示例确实跨越了多行,尽管他们谈论的multiline是当返回值开始于
return
关键字下面的行时。啊,好的,谢谢我想我现在明白了。所以若你们添加一个换行符,你们需要在return关键字之后引入(右),但若你们在return之后开始语句,你们就不需要它了。