2016-07-14 3 views
5

У меня есть javascript-файл, который выглядит ниже. У него много объектов (1000+). Поскольку мы не можем использовать динамическое имя для изображений в реакции-native, это моя работа.Проблема, требующая слишком большого количества изображений в книге React Native

"grinning": { 
     "image": require('./images/1f600.png'), 
     "shortname": ":grinning:", 
    } 

Мне нужен этот файл в некоторых других встроенных функциях реагирования и циклическом отображении всех изображений. Но внутренняя ошибка требует слишком много изображений в файле javascript.

{"type":"InternalError","message":"react-packager has encountered an internal error, please check your terminal error output for details"} 

В терминале он говорит

fs operation timeout 

Это работает, если я удалить несколько записей из файла.

Любое предложение или лучший подход

+0

попробуйте позвонить без необходимости. и положите абсолютный путь, как "/mypictures/another/folder/my.png". Вы хотите, чтобы файл изображения или только путь к «изображению»? если вы хотите, чтобы путь, который вы не должны использовать, требует – Disfigure

+2

, почему вы используете требуемый файл изображения? требование обычно должно использоваться для ожидания загрузки файла перед началом загрузки остального. Если вы поместите его в цикл, это займет много времени, и если он слишком длинный в соответствии с вашими настройками, вы можете получить таймаут. Почему вы не только поместите путь в свой json-объект? как вы показываете свое изображение? –

+0

Я использую запрос, потому что у вас не может быть динамическое имя для изображений в реакции-native. Вы должны указать все во время выполнения, чтобы он мог связать все перед загрузкой приложения. – Nakib

ответ

2

Есть known issues с библиотекой Фреско, отвечающий за обработку изображений, а также памяти ограничения:

проблемы памяти с PNG изображений

Реагировать Native Android зависит от Fresco для загрузки и отображения изображений. В настоящее время мы отключили downsampling, потому что он экспериментальный, поэтому вы можете запускать в память проблемы при загрузке больших изображений PNG.

Так что, возможно, попробуйте сжать ваши изображения, если сможете, и только требуйте их, когда они должны быть визуализированы.

Вы также должны проверить bug tracker. Вот comparable issue и его исправление:

@ phones24 писал:

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

+0

Я не могу требовать их, когда мне нужно визуализировать, потому что его огромный файл, и мне придется копировать этот код где угодно. И это не просто проблема с Android, а спецификация iOS – Nakib