簡體   English   中英

eslint-plugin-react/require-render-return 用於功能組件

[英]eslint-plugin-react/require-render-return for functional components

不幸的是 eslint-plugin-react/require-render-return 僅適用於 Class 組件。 它不適用於功能組件,至少在我這邊。

為什么我需要這個?

考慮以下示例:

const Component = () => <div />

上述功能組件返回一個空的 div。

現在考慮我們可能需要添加一個鈎子:

const Component = () => {
   useEffect(() => { /* some side-effect here */ } );
   <div />
}

因此,當將箭頭函數從無體切換到有函數體時,開發人員忘記return DOM,函數什么也不返回。 捕捉這種回歸的唯一方法是在代碼審查期間,這涉及人為因素,這可能會被遺漏。 如果有一個 linter 規則會更好。

那么你們是做什么的呢?

這是一個完美的例子,說明了為什么你應該使用 TypeScript 而不是普通的舊 JavaScript。 它會在編譯/寫入時拋出指向該問題的錯誤。

const SomeComponent: React.FC = () => <div />
// ✅

const AnotherComponent: React.FC = () => {
  useEffect(() => {})
}
// 💥 "Type 'void' is not assignable to type 'ReactElement<any, any> | null'."

React 與 TypeScript 的結合在所有可能的方面確實是最好的。 我不能強調你絕對應該學習 TypeScript,每一秒都是值得的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM