跳至主要內容
版本:6.x

React Navigation 貢獻者指南

想幫忙改善 React Navigation 嗎?非常感謝您的幫忙!

以下是為此專案提供協助的方法

另外,這裡有一些有用的資源,可協助您入門

貢獻

回報錯誤

撰寫程式碼時有時難免會寫出錯誤。特別是當 React Navigation 快速發展時,總是難免會有錯誤。當您認為自己發現一個錯誤時,可以這樣做

  1. 針對您遇到的錯誤,搜尋已經存在的類似問題。如果您有看到類似的問題,請加上一個 👍 回應(請不要再另外留言 +1)。讀一讀相關留言,看看您是否能提供更有價值的資訊
  2. 如果沒有其他問題與您遇到的情況相似,那就建立一個新的問題。請務必遵循問題範本

建立一個高品質的重現範例非常重要。如果不這麼做,我們可能無法修復錯誤,而理想的狀況下,您會發現錯誤並非函式庫的錯誤,而只是在您的專案中執行有誤。這個問題馬上就解決了!

改善文件

任何成功計畫都需要品質良好的文件,而 React 導航也不例外。

深入了解 react-navigation/react-navigation.github.io 儲存庫 文件。

回應問題

另一個對 React 導航有巨大幫助的方法是回應問題。也許是回答某人的問題、指出其程式碼中的小錯字,或協助其組合重建。如果您有興趣在 React 導航中扮演更積極的角色,可以從回應問題做起,這不僅有助益,還展示您對程式的投入與知識!

錯誤修正

找出錯誤,修正它,好運將接踵而來!就如前面提到的,錯誤是難免的。若您找到一個錯誤,請務必執行下列步驟

  1. 檢查是否有修正該錯誤的請求已存在。如果有的話,請審閱並留下一則留言
  2. 若還沒有請求,那就找出解法!如果變更很小,先修正它,並送出請求。如果變更數量不少,先送出問題讓我們討論(參閱大型請求部分)
  3. 若有問題與該錯誤相關,請在問題上留下一則留言,並附上您所送出的請求連結,讓其他人知道該錯誤已有人處理了。

查看 協助徵求適合新手 標籤,瞭解您能從何處開始提供協助!

建議功能

您希望在 React 導航中看到哪些功能嗎?請 在 Canny 上建立功能要求

大型請求

對於會新增/移除/修改專案中多個檔案的任何變更(新功能或錯誤修正),請勿立刻撰寫程式碼。這樣做有幾個原因

  1. 審閱大型請求非常耗時,有時候也很難找出文脈
  2. 通常並不需要做出您所預期的那麼大的變更

請牢記以下建議

  1. 開啟議題並清楚陳述要達成的目標和實現目標的方法
  2. 和社群及維護者討論該解決方案。提供背景知識、建立邊界案例,並確定設計
  3. 決定行動計畫
  4. 撰寫程式碼並提交 PR
  5. 檢閱 PR。這可能需要花費一些時間,但如果您遵循上述步驟,希望不會花太多時間。

我們這麼做的原因是為所有人都省下時間。可能該功能已存在,但沒有文件記載嗎?或者可能不適合這個資料庫。無論如何,事先討論重大變更都能為您和其他人省下時間。

資訊

問題範本

在提交問題之前,請參閱問題範本並加以採用。這份範本的目的是幫助所有人更了解您遇到的問題,並減少來回對話以取得所需的資訊。

是的,填寫問題範本需要花費時間和精力。但這是提出高品質問題以實際獲得回應的唯一方法。

您希望花 1 分鐘建立一份不完整的問題報告,然後再等數個月才能獲得任何回應嗎?或者願意花 20 分鐘填寫一份高品質的問題報告,包含所有必要的元素,並在幾天內獲得回應?對於願意花時間檢閱您問題的任何人來說,這也是一個有禮貌的行為。

Pull Request 範本

和問題範本很像,Pull Request 範本提供了說明,以確保您的 Pull Request 能及時獲得檢閱,並減少來回對話。在開始撰寫任何程式碼之前,請務必先仔細閱讀。

複製存放庫

  • 在 GitHub 上複製repo
  • 在終端機中執行以下指令,以進行本機下載並安裝
git clone https://github.com/<USERNAME>/navigation-ex.git
cd navigation-ex
git remote add upstream https://github.com/react-navigation/react-navigation.git
yarn

這個專案針對由yarn 工作區lerna管理的套件,使用單一存放庫結構。所有套件都位於packages/目錄下。

程式碼審查指南

四處看一看。符合其他程式碼庫的風格。此專案使用 ESLint 來確保整個專案的一致性。你可以透過執行下列命令檢查專案:

yarn lint

如果發生任何錯誤,你必須手動修復它們,或者你可以嘗試透過執行以下命令自動修復它們:

yarn lint --fix

程式碼庫以 TypeScript 編寫,而且必須通過型別檢查。若要對檔案執行型別檢查,請執行:

yarn typescript

在處理專案時,建議以監控模式執行型別檢查。若要執行此動作,請執行:

yarn typescript --watch

執行範例應用程式

範例應用程式 包含各種模式,並用作貢獻者手動整合測試變更的簡單方式。

在開發期間,你可以使用 Expo 搭配 範例應用程式 來測試變更。

yarn example start

執行測試

React Navigation 的測試是以 Jest 實作。若要從 React Navigation 目錄執行其中任何一個測試,請在安裝 node_modules 之後執行下列指令,以執行測試或型別檢查。

yarn test

在處理專案時,建議以監控模式執行測試。若要執行此動作,請執行:

yarn test --watch

這些指令會由我們的 CI 執行,而且在合併任何貢獻之前,都必須通過。