ошибка значков react-native-paper на Android с использованием Expo

#react-native #expo #react-native-paper

#react-native #expo #react-native-paper

Вопрос:

Я использую Expo и react-native-paper. В документах react-native-paper говорится: «Если вы используете Expo, вам не нужно устанавливать векторные значки»

Значки работают в веб-версии в Expo, но не на Android (эмулятор или через приложение).

На Android я получаю эту ошибку: не удалось разрешить «react-native-vector-icons / MaterialCommunityIcons» из «node_modules react-native-paper src components MaterialCommunityIcon.tsx»

Попробовал приведенные ниже решения (хотя я думаю, что я не должен использовать их при использовании Expo)

  • Если я устанавливаю пакет react-native-vector-icons, я получаю сообщение об ошибке: FontFamily «MaterialCommunityIcons» не является системным шрифтом и не был загружен через Font.LoadAsync
  • Попытка решения здесь: запуск react-native link react-native-vector-icons, похоже, не помогает. Не удается получить доступ к Android Gradle при использовании Expo.

Версии пакетов:

     "@expo/vector-icons": "^12.0.0",
    "expo": "~40.0.0",
    "expo-file-system": "~9.3.0",
    "expo-font": "~8.4.0",
    "expo-status-bar": "~1.0.3",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-hook-form": "^6.13.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-40.0.0.tar.gz",
    "react-native-paper": "^4.4.1",
 

Комментарии:

1. удалось ли вам найти какое-либо решение. Я также сталкиваюсь с аналогичной проблемой.

2. В настоящее время мое временное решение заключается в установке значков react-native-vector-icons , а затем вручную переключать каждую опору значков компонентов react-native-paper на: icon={() => <MaterialCommunityIcons name={some_icon_name} size={24}/>} это устраняет ошибку и отображает значки, но это плохое решение, потому что мне приходится вручную добавлять значки, вручную добавлять темы / стилидля них, и это не работает для некоторых компонентов react-native-paper, у которых нет реквизитов для всех их значков.