Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不是系统字体错误,可能与async有关?_Javascript_React Native_Expo_Create React Native App - Fatal编程技术网

Javascript 不是系统字体错误,可能与async有关?

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

所以我得到“Roboto Black”不是系统字体,请尝试通过Expo.font.loadAsync()错误。但我在其他帖子中看到,有些人也有类似的问题,解决方法是使用wait/promise。 但是,我不知道如何使用我的代码来实现这一点,因为我只是按照一个教程来实现这一点,这是我第一次尝试用最少的JS知识使用create react native app:( 请帮助我检查此代码段,并让我知道我做错了什么:

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}
/>
);
}
返回(
);
}
}