新聞

WordPress開發團隊宣布,React 19不會納入WordPress 7.1,該版本將繼續使用React 18.3。團隊先前曾在Gutenberg外掛中短暫啟用React 19,但測試發現,新舊React版本之間的互動,以及部分外掛使用React的方式,會引發未預期的相容問題,因此撤回這項變更,並需要較長的測試期,持續改善及調整相容層。

React是許多WordPress區塊、編輯器擴充功能及後臺頁面使用的介面開發技術。這次React升級的主要問題之一,是部分外掛將React的JSX執行階段程式碼直接包進自己的JavaScript程式碼,而不是使用WordPress統一提供的react-jsx-runtime共用指令碼。

WordPress改用React 19後,這些外掛仍可能帶有React 18的部分程式,同一頁面便會混用React 18與React 19。舊版建立的資料結構交由新版執行階段處理時,可能因兩者不相容而出錯,造成區塊或後臺介面無法正常操作,或在瀏覽器開發工具的主控臺出現錯誤訊息。

WordPress指出,若外掛依照建議方式使用WordPress提供的共用程式,多數相容問題原本可以避免。另一類問題則來自部分外掛仍使用React早已不建議使用、並在React 19移除的舊功能,例如以字串指定元件參照、在函式元件中使用defaultProps,以及用來在元件間傳遞資料的舊式context機制。

WordPress正在相容層中補上部分舊功能,但目前仍不足以讓既有外掛全面順利執行。開發團隊因此認為,React 19升級還需要較長的測試期,才能降低網站升級後出現介面故障的風險。

React 19導入工作持續進行,自Gutenberg 23.4起,外掛開發者可安裝Gutenberg外掛,並在實驗功能頁面啟用React 19,檢查區塊、編輯器擴充功能及自訂WordPress後臺頁面是否正常,並確認瀏覽器開發工具的主控臺沒有出現相關錯誤。

WordPress也正在Plugin Check外掛中開發自動檢查功能,協助找出外掛直接包入react/jsx-runtime程式碼,或使用React 19已移除功能等問題。開發團隊呼籲外掛作者提前測試並更新程式碼,發現問題時可回報至Gutenberg的GitHub儲存庫。