2016-07-14 15 views
5

Tôi có tệp javascript trông giống như bên dưới. Nó có rất nhiều đối tượng (1000+). Vì chúng ta không thể sử dụng tên động cho hình ảnh trong phản ứng bản địa, đây là công việc của tôi.Sự cố khi yêu cầu quá nhiều hình ảnh trong React Native

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

Tôi yêu cầu tệp này trong một số chức năng gốc có phản ứng khác và lặp để hiển thị tất cả hình ảnh. Nhưng nhận được lỗi nội bộ về yêu cầu quá nhiều hình ảnh trong tệp javascript.

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

Trong terminal nó nói

fs operation timeout 

này hoạt động nếu tôi loại bỏ vài mục từ tập tin.

Bất kỳ gợi ý hoặc cách tiếp cận tốt hơn

+0

cố gắng gọi mà không cần. và đặt đường dẫn tuyệt đối như "/mypictures/another/folder/my.png". Bạn có muốn tệp hình ảnh hoặc chỉ đường dẫn vào khóa "hình ảnh" không? nếu bạn juste muốn con đường bạn không nên sử dụng yêu cầu – Disfigure

+2

tại sao bạn đang sử dụng yêu cầu trên một tập tin hình ảnh? yêu cầu thường được sử dụng để chờ tải tệp trước khi bắt đầu tải phần còn lại. Nếu bạn đặt nó trong một vòng lặp nó sẽ mất một thời gian dài và nếu nó quá dài theo cài đặt của bạn, bạn có thể có một thời gian chờ. Tại sao bạn không chỉ đặt đường dẫn trong đối tượng json của bạn? làm thế nào bạn hiển thị hình ảnh của bạn? –

+0

Tôi đang sử dụng yêu cầu vì bạn không thể có tên động cho hình ảnh trong phản ứng gốc. Bạn phải chỉ định mọi thứ trong thời gian chạy để có thể gộp mọi thứ trước khi tải ứng dụng. – Nakib

Trả lời

2

known issues với thư viện Fresco chịu trách nhiệm xử lý hình ảnh, và bộ nhớ giới hạn:

vấn đề bộ nhớ với những hình ảnh PNG

Phản ứng Android Native phụ thuộc vào Fresco để tải và hiển thị hình ảnh. Hiện tại, chúng tôi đã vô hiệu hóa việc cắt giảm do thử nghiệm, vì vậy bạn có thể gặp phải sự cố khi gặp sự cố khi tải hình ảnh PNG lớn.

Vì vậy, có thể thử nén hình ảnh của bạn nếu có thể và chỉ yêu cầu chúng khi chúng được hiển thị.

Bạn cũng nên kiểm tra bug tracker. Đây là một comparable issue và sửa chữa nó:

@ phones24 đã viết:

tôi tối ưu hóa ứng dụng của tôi vì vậy nó không lưu trữ quá nhiều hình ảnh. Tôi cũng đã thêm một số nén JPEG khác và chia tỷ lệ hình ảnh xuống một chút. Tôi cũng đã viết đường dẫn thêm thông tin lỗi vào sự kiện.

+0

tôi không thể yêu cầu chúng khi tôi cần render vì nó là một tệp lớn và tôi sẽ phải sao chép mã đó ở mọi nơi. Và nó không chỉ là vấn đề Android nhưng iOS cụ thể – Nakib

Các vấn đề liên quan