افزودن کاستوم فونت در ری اکت نیتیو

- 8 ماه پیش
توسط س عماد آرم آپدیت شد
س عماد آرم ( 57 تجربه )
8 ماه پیش

با سلام خدمت تمامی دوستان
من با دستور create-react-native-app پروژه جدید ساختم و بدون شبیه ساز روی گوشی واقعی داشتم پروژه رو جلو میبردم که به کاستوم فونتم رسیدم که نتونستم اضافش کنم،آموزش های داخل سایت که از expo پشتیبانی نمیکنه، از مستندات سایت اکسپو هم که استفاده کردم نتیجه نگرفتم،مرتب خطا میده که فونت شناخته نشده و با دستور font.loadasync اضافه کن ،من هم عین دستور رو وارد میکنم داخل app.js فونت رو میخونه ولی لود نمیکنه و خطا میده
داخل اندروید وقتی hot reloading فعال باشه یک لحظه فونت رو نشون میده بعد خطا میده
ولی آی او اس که اصلا hot reloading نداره و مستقیما خطا میده
دوستان اگه کسی میدونه راهنمایی کنه ممنون میشم

حسام موسوی ( 72834 تجربه )
8 ماه پیش

چون بصورت async هست از روش صبر کردن و نمایش بعد از لود شدن رو براش قرار بدید که در همون مستنداتی که خوندین هم هست اگر هم میخواین مثل قبل با دستور react-native اجرا کنید پروژه رو هم میتونید با دستور

npm run eject

اینکارو انجام بدید

س عماد آرم ( 57 تجربه )
8 ماه پیش

به صورت async هم طبق همون مستندات انجام دادم ولی باز هم خطای مشابه میده و میگه فونت شما قابل شناسایی نیست
"

class App extends React.Component {
async componentDidMount() {
await Font.loadAsync({
'open-sans-bold': require('./assets/fonts/OpenSans-Bold.ttf'),
});

this.setState({ fontLoaded: true });

}

// ...
}

"
با این دستور
ولی خطای مشابه قبل رو میده
این خطا:
fontFamily 'IRANSansMobilde' is not a system font and has not been loaded through Expo.Font.loadAsync.

  • If you intended to use a system font, make sure you typed the name correctly and that it is supported by your device operating system.
علیرضا اصلانی ( 6139 تجربه )
8 ماه پیش

از این دستورم داخل reander استفاده کردید؟

{
    this.state.fontLoaded ? (
      <Text style={{ fontFamily: 'open-sans-bold', fontSize: 56 }}>
        Hello, world!
      </Text>
    ) : null
  }

چون حتما باید چک کنید فونت لود شده یا نه وگرنه پیدا نمیکنه و اون اررور رو نشون میده بهتون

س عماد آرم ( 57 تجربه )
8 ماه پیش

این دستور رو هم گذاشته بودم طبق مستندات اکسپو:
{
this.state.fontLoaded ? (
<Text style={{ fontFamily: 'open-sans-bold', fontSize: 56 }}>
Hello, world!
</Text>
) : null
}
بازم نشد

برای ارسال پاسخ باید وارد سایت شوید