我正在制作一个react原生应用程序,现在正在尝试放置一个下载的字体,我一直在检查应用程序错误的渲染方法,然后在它下面,它说
此错误位于:在应用(由 ExpoRoot 创建)在 ExpoRoot 中(在渲染html" target="_blank">应用程序.js:45)在 RCTView(在视图.js:34)在视图(在应用程序容器.js:106)在 RCTView(在视图.js:34)在视图(在应用程序容器.js:132)在应用程序容器(在呈现应用程序.js:39)
我看过类似的问题,但没有他们的解决方案解决了我的问题,所以我从他们的解决方法中得出结论,这是一个导入或导出错误,但我所有的东西都是正确导入和导出的,所以我不知道问题是什么了。这就是我当前的代码
import React, {useState} from 'react';
import { View } from 'react-native';
import * as Font from 'expo-font';
import Home from './screens/Home';
import AppLoading from 'expo';
const getFonts = () =>
Font.loadAsync({
"Alef-Bold": require("./assets/fonts/Alef-Bold.ttf")
})
export default function App() {
const [fontsLoaded, setFontsLoaded] = useState(false);
if(fontsLoaded){
return (
<View>
<Home />
</View>
);
} else {
return (
<AppLoading startAsync={getFonts} onFinish={() => setFontsLoaded(true)} />
)
}
}
这是主页组件
import React from 'react'
import {StyleSheet, Text, View } from 'react-native'
function Home() {
return (
<View style={styles.container}>
<Text style={styles.titleText}>Welcome to the home page</Text>
</View>
)
}
const styles = StyleSheet.create({
container: {
padding: 50,
},
titleText: {
fontFamily: "Alef-Bold",
}
})
export default Home
那么我该如何解决这个问题呢?
您加载字体的方式是错误的,您的导入也是如此。要纠正这一点,只需按照以下步骤操作
点击此处查看工作示例
首先像这样安装AppLoding
expo install expo-app-loading
在App.js
所在的位置创建一个名为hooks
的文件夹。
在钩子
文件夹内创建一个名为 useFonts 的文件.js
粘贴此代码
useFonts.js
import * as Font from 'expo-font';
const useFonts = async () => {
await Font.loadAsync({
'Alef-Bold': require('../assets/fonts/Alef-Bold.ttf'),
});
};
export default useFonts;
然后在您的应用中.js
粘贴此代码
import React, { useState } from 'react';
import { View } from 'react-native';
import AppLoading from 'expo-app-loading';
import Home from './screens/Home';
import useFonts from './hooks/useFonts';
export default function App() {
const [fontsLoaded, setFontsLoaded] = useState(false);
const LoadFonts = async () => {
await useFonts(); // We have to await this call here
};
if (!fontsLoaded) {
return (
<AppLoading
startAsync={LoadFonts}
onFinish={() => setFontsLoaded(true)}
onError={(error) => console.log(error)}
/>
);
}
return (
<View>
<Home />
</View>
);
}
你的家.js
应该是这样的
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
function Home() {
return (
<View style={styles.container}>
<Text style={styles.titleText}>Welcome to the home page</Text>
<Text style={styles.normalText}>This text is in normal font</Text>
</View>
);
}
const styles = StyleSheet.create({
container: {
padding: 50,
flex: 1,
justifyContent: 'center',
alignItems: 'center',
color: 'red',
},
titleText: {
fontFamily: 'Alef-Bold',
fontSize: 30,
},
normalText: {
fontSize: 30,
},
});
export default Home;
通过遵循这种加载字体的方式,您的App.js
将整洁干净。我在所有项目中都使用这种方式
每当我在输入命令npx react native run android后尝试测试应用程序时,就会出现以下错误。我试着在环境变量中设置路径。但仍然不起作用我尝试重新安装react native,但仍然不起作用。我试图从java重新安装JDK,但最后,该应用程序仍然无法在模拟器中运行。感谢您的反馈:) 失败:生成失败,出现异常。 出错的地方:任务执行失败:react-native-community
因此,我得到了一个错误(在底部),很可能是由于我尝试卸载react native pathjs图表引起的。以下问题只存在于android上,而不存在于ios上。 /Users/a.lau/Projects/react-native/First_App/android/app/src/main/java/com/first_app/MainApplication.java: 7:错误:找不到符号导入
我尝试以下代码,但它显示错误消息: 错误消息:- 处理该命令时发生未知的服务器端错误。(警告:服务器未提供任何stacktrace信息)
我很难在fxml/java代码中找到要修复的内容,这就是全部错误: java.lang.reflect.InvocationTargetExctive atsun.reflect.NativemetodAccessorImpl.invoke0(本机方法)atsun.reflect.NativemetodAccessorImpl.invoke(NativemetodAccessorImpl.java
我正在尝试使用intelliJ IDEA创建我的第一个JavaFX程序 我得到这个错误: 这是我的FXML文件: main.java: 这是项目结构: 项目结构 我甚至更改了fxml文件的位置,但他不断得到相同的错误。 FXML文件和Main.java在同一个包中 我是Ubuntu
我在playstore有一个11K的应用程序。该应用程序是本地Java的。我做了一个react原生应用程序与相同的包名,并更改了jks密钥到密钥存储文件和更改了版本代码。我正在使用的应用程序存储jks文件,我得到这个错误,我知道通过卸载解决,但我不能告诉用户卸载,有没有其他方式执行失败的任务':app:installrelease'。 com.android.builder.testing.api