Javascript 不是系统字体错误,可能与async有关?
所以我得到“Roboto Black”不是系统字体,请尝试通过Expo.font.loadAsync()错误。但我在其他帖子中看到,有些人也有类似的问题,解决方法是使用wait/promise。 但是,我不知道如何使用我的代码来实现这一点,因为我只是按照一个教程来实现这一点,这是我第一次尝试用最少的JS知识使用create react native app:( 请帮助我检查此代码段,并让我知道我做错了什么:Javascript 不是系统字体错误,可能与async有关?,javascript,react-native,expo,create-react-native-app,Javascript,React Native,Expo,Create React Native App,所以我得到“Roboto Black”不是系统字体,请尝试通过Expo.font.loadAsync()错误。但我在其他帖子中看到,有些人也有类似的问题,解决方法是使用wait/promise。 但是,我不知道如何使用我的代码来实现这一点,因为我只是按照一个教程来实现这一点,这是我第一次尝试用最少的JS知识使用create react native app:( 请帮助我检查此代码段,并让我知道我做错了什么: import React, { Component } from 'react'; im
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import { Font, AppLoading } from 'expo';
import Router from 'loginDemo/config/routes.js'
import store from 'loginDemo/redux/store.js';
function cacheFonts(fonts) {
return fonts.map(function(font) {return Font.loadAsync(font)});
}
export default class App extends Component {
constructor() {
super();
this.state = {
isReady: false,
}
}
async _loadAssetsAsync() {
const fontAssets = cacheFonts([
{RobotoBlack: require('loginDemo/assets/fonts/Roboto-Black.ttf')},
{RobotoBold: require('loginDemo/assets/fonts/Roboto-Bold.ttf')},
{RobotoMedium: require('loginDemo/assets/fonts/Roboto-Medium.ttf')},
{RobotoRegular: require('loginDemo/assets/fonts/Roboto-Regular.ttf')},
{RobotoLight: require('loginDemo/assets/fonts/Roboto-Light.ttf')}
]);
await Promise.all([...fontAssets]);
}
render() {
if (!this.state.isReady) {
return (
<AppLoading
startAsync={this._loadAssetsAsync}
onFinish={() => this.setState({isReady: true})}
onError={console.warn}
/>
);
}
return (
<Provider store={store}>
<Router/>
</Provider>
);
}
}
import React,{Component}来自'React';
从'react redux'导入{Provider};
从“expo”导入{Font,AppLoading};
从“loginDemo/config/routes.js”导入路由器
从“loginDemo/redux/store.js”导入存储;
函数缓存字体(字体){
return fonts.map(函数(字体){return font.loadAsync(字体)});
}
导出默认类应用程序扩展组件{
构造函数(){
超级();
此.state={
伊斯雷迪:错,
}
}
异步_loadAssetAsync(){
const fontAssets=cacheFonts([
{RobotoBlack:require('loginDemo/assets/font/Roboto Black.ttf'),
{RobotoBold:require('loginDemo/assets/fonts/RobotoBold.ttf'),
{RobotoMedium:require('loginDemo/assets/fonts/Roboto Medium.ttf'),
{robotregular:require('loginDemo/assets/font/Roboto Regular.ttf'),
{RobotoLight:require('loginDemo/assets/font/RobotoLight.ttf'))
]);
等待承诺。所有([…fontAssets]);
}
render(){
如果(!this.state.isReady){
返回(
this.setState({isReady:true})
onError={console.warn}
/>
);
}
返回(
);
}
}