2015-11-29 5 views
2

Я пытаюсь использовать некоторые изображения в своем проекте, основанном на реакции.React native relative image path loading

Мой проект имеет следующую структуру:

./index.android.js 

./images/icon.png 

Я пытаюсь загрузить изображение в представлении в index.android.js:

<View> 
     <Image 
      source={require('./images/icon.png')} 
      style={styles.icon} 
     /> 
</View> 

Я знаю, что изображения будут найдены, потому что я не получаю никаких ошибок (если я пытаюсь потребовать несуществующее изображение, которое я делаю). Но тем не менее изображения не загружаются, и это пустой ящик, где должно быть изображение.

Что я делаю неправильно? Я использую native-native 0.15.0, используя мобильное устройство для тестирования.

Update:

Так что я нашел это в моем файле build.gradle для моего приложения:

* // where to put drawable resources/React Native assets, e.g. the ones you use via 
* // require('./image.png')), in debug mode 
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", 

Мои изображения не являются в этой папке. Полагаю, это проблема?

ответ

3

Вы используете Windows? Я столкнулся с этой же проблемой, и она оказалась ошибкой в ​​packager/react-packager/src/Bundler/index.js с тем, как создается путь URL-адреса ресурса. Он использует модуль path для преобразования пути локального файла к URL-адресу, но модуль path возвращает пути с собственными разделителями путей. В Windows вы получаете недопустимые пути URL из-за путей, имеющих обратную косую черту, а не косые черты. Быстрое исправление заключается в том, чтобы заменить обратную косую черту косой чертой.

Подробнее см. Файл diff в моем запросе на тягу.

https://github.com/facebook/react-native/pull/4416/files

Update: запрос Мой тянуть был принят и выпущен с версией 0.17.

+0

Я пользуюсь окнами. Я вручную добавил свои фрагменты кода в мой, потому что файл, который у меня есть, по-видимому, отличается (хотя я уверен, что у меня есть последняя версия реагирования), и мой сервер узлов не запускается, если я скопировал Все это. Теперь мои снимки прекрасны. Если я правильно понял, запрос на тягу был отклонен из-за чего-то? (Просто спрашиваю, потому что я действительно хотел бы, чтобы это исправлено) – Nirri

+0

@Nirri Запрос на растяжение по-прежнему открыт. Он не прошел автоматическое тестирование, но этот тест полностью не связан с моими изменениями и не срабатывал при других недавних запросах на тягу. Надеюсь, что это не удержит, но я буду следить за ним, чтобы посмотреть, смогу ли я это продолжать. Если вам так хочется, я бы предложил добавить комментарий к моему запросу на тягу, подтверждающий, что у вас была такая же проблема, поэтому они знают, что это не только проблема. –

+1

Я вижу. Я оставил комментарий. Спасибо за помощь. – Nirri