我一直在嘗試在Expo中載入字體,但我一直得到相同的錯誤。
這是我的程式碼:
我的Index.js如下圖:
import WelcomePage from "./Authentication/WelcomePage"; export default function Page() { return ( <WelcomePage/> ); }
而我的Welcomepage看起來是這樣的:
import {Link, useRouter} from "expo-router"; import {windowForm} from "../Design/WindowForm"; import {Button} from "react-native-paper"; import Styles from "../Design/styles"; import Constants from "expo-constants"; import {Inter_900Black, useFonts} from "@expo-google-fonts/inter"; const WelcomePage = () => { const router = useRouter() let [fontsLoaded] = useFonts({ Inter_900Black, }); if (!fontsLoaded) { return null; } return( <View style={{width: windowForm().at(0), height:windowForm().at(1)}}> <Text style={{fontFamily:'Inter_900Black'}}> Hey </Text> </View> ) } export default WelcomePage
這是我一直得到的錯誤:
警告:React偵測到WelcomePage中Hooks呼叫的順序改變了。如果不修復,這將導致錯誤和bug。了解更多信息,請閱讀Hooks的規則:https://reactjs.org/link/rules-of-hooks
包括以下內容:
之前的渲染
下一個渲染
感謝 Mike 'Pomax' Kamermans
我已經弄清楚我應該先做一個 MCVE。這樣我意識到問題不在於字體,而是關於我的
javascript windowForm().at(0)
在同一個 const 中被呼叫。我還不確定原因,但是當我將它們分開時,就沒有報錯了。一旦我了解更多,我會編輯這篇帖子。向Mike致敬。