Нераспознанное семейство шрифтов 'entypo' - PullRequest
0 голосов
/ 31 августа 2018

Я использую родное приложение createact от команды expo для создания приложения. Использование компонента Icon из response-native-elements для создания функции заголовка реагирования навигации. Фрагмент ниже:

const Navigator = new createStackNavigator({
  Home: {
    screen: Home,
    path: '/',
    navigationOptions: ({ navigation }) => ({
      title: 'Home',
      headerStyle: {
        backgroundColor: 'black'
      },
      headerLeft: (
        <Icon
          name="menu"
          size={30}
          type="entypo"
          style={{ paddingLeft: 10 }}
        />
      ),
    }),
  },
})

Я столкнулся с этой ошибкой: Unrecognised font family error message

После многочисленных итераций я нашел эту предполагаемую работу вокруг 1-го и 2-го командой разработчиков и реализовал ее ниже для приложения, но все еще сталкивался с теми же проблемами.

import Expo from "expo";
import React from 'react';
import { Platform, StatusBar, StyleSheet, View } from 'react-native';
import { AppLoading, Asset, Font } from 'expo';
import { FontAwesome, Ionicons } from '@expo/vector-icons';
import { connect } from 'react-redux'
import { Auth } from 'aws-amplify';
import AuthTabs from './auth/Tabs';
import Nav from './navs/Navigator';
import Home from "./components/Home";


class App extends React.Component {
  state = {
    user: {},
    isLoading: true,
    isLoadingComplete: false,
  };


  async componentDidMount() {
    StatusBar.setHidden(true)
    try {
      const user = await Auth.currentAuthenticatedUser()
      this.setState({ user, isLoading: false })
    } catch (err) {
      this.setState({ isLoading: false })
    }
  }

  async componentWillReceiveProps(nextProps) {
    try {
      const user = await Auth.currentAuthenticatedUser()
      this.setState({ user })
    } catch (err) {
      this.setState({ user: {} })
    }
  }


  render() {
      if (!this.state.isLoadingComplete && !this.props.skipLoadingScreen) {

        return(
          <AppLoading
            startAsync={this._loadResourcesAsync}
            onError={this._handleLoadingError}
            onFinish={this._handleFinishLoading}
          />
      );
      }

      else{
        if (this.state.isLoading) return null

        let loggedIn = false
        if (this.state.user.username) {
          loggedIn = true
        }

        if (loggedIn) {
          return (
            <Nav />
          )
        }
        return (
          <AuthTabs />
        )

}

}


_loadResourcesAsync = async () => {

  console.log("fonts loading..")

  const entypoFont = {
    'entypo': require('../node_modules/@expo/vector-icons/fonts/Entypo.ttf')
  };
  const fontAssets = cacheFonts([ FontAwesome.font, Ionicons.font, entypoFont ]);
   console.log("loaded all fonts locally")
  await Promise.all([...fontAssets]);

  console.log("promisified all fonts")

  };

  _handleLoadingError = error => {
    console.warn(error);
  };

  _handleFinishLoading = () => {
    this.setState({ isLoadingComplete: true });
  };
}

function cacheFonts(fonts){
  return fonts.map(font => Font.loadAsync(font))
}

const mapStateToProps = state => ({
  auth: state.auth
})

export default connect(mapStateToProps)(App)

Что я делаю не так и как это можно настроить соответствующим образом? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...