facebook / react-native

A framework for building native applications using React
https://reactnative.dev
MIT License
119.17k stars 24.32k forks source link

RCTImageCache working incorrectly. #17647

Closed ghost closed 6 years ago

ghost commented 6 years ago

Is this a bug report?

Yes

Have you read the Contributing Guidelines?

Yes

Environment

Environment: OS: macOS Sierra 10.12.6 Node: 8.9.3 Yarn: Not Found npm: 5.6.0 Watchman: 4.9.0 Xcode: Xcode 9.2 Build version 9C40b Android Studio: 2.3 AI-162.4069837

Packages: (wanted => installed) react: ^16.0.0 => 16.0.0 react-native: ^0.51.0 => 0.51.0

Steps to Reproduce

(Write your steps here:) untitled Precondition: images was saved in local before.

  1. Name images as 1,2,3,4 for easily tracking
  2. Display images in FlatList as Gif above (Image component must have same width and height)
  3. Change the name of image 4.jpg to 5.jpg and 3.jpg to 4.jpg

Expected Behavior

Image 3.jpg after rename to 4.jpg display correct image

Actual Behavior

I think RCTImageCache was fetched wrong image because of NSString *cacheKey = RCTCacheKeyForImage(url, size, scale, resizeMode, responseDate); line. In the example above. suppose data1 is 4.jpg and data2 is 3.jpg. so when we change 4.jpg to 5.jpg, we have cached data1 with file:///xxx/documents/downloads/4.jpg and file:///xxx/documents/downloads/4.jpg keys.(file:///xxx/documents/downloads/xxx.jpg is absolute path to image). Then when change 3.jpg to 4.jpg it will fetched data1 with file:///xxx/documents/downloads/4.jpg key (which was saved by another image before). So wrong image was fetched

I think the bug can be fixed if Image component support keyExtractor like FLatList for cache-key

Reproducible Demo

The instructions I have give in the give above. (I'm sorry for my bad english)

ghost commented 6 years ago

Anyone help?

react-native-bot commented 6 years ago

Thanks for posting this! It looks like you may not be using the latest version of React Native, v0.53.0, released on January 2018. Can you make sure this issue can still be reproduced in the latest version?

I am going to close this, but please feel free to open a new issue if you are able to confirm that this is still a problem in v0.53.0 or newer.

How to ContributeWhat to Expect from Maintainers

salmanwaheed commented 6 years ago

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its recipients. This is a temporary error. The following address(es) deferred:

mkdirenv@gmail.com Domain salmanwaheed.info has exceeded the max emails per hour (186/150 (124%)) allowed. Message will be reattempted later

------- This is a copy of the message, including all the headers. ------ Received: from o3.sgmail.github.com ([192.254.112.98]:31546) by box1177.bluehost.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.89_1) (envelope-from bounces+848413-a7b0-hello=salmanwaheed.info@sgmail.github.com) id 1epQW8-003Jj6-1A for hello@salmanwaheed.info; Fri, 23 Feb 2018 20:28:57 -0700 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com; h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=J10vyvUT2CbvOymwJQojY6W9I7g=; b=qDbRf2QOwaBge3Uf fnGXnCFACKIiz+0BPsrRKWv5WhjAGoQVl/EOJvWxX90Jmffd7FS/OhWKTGOb6968 1RX5HsUyPY8dsv1ipOGJAMDlecTCkR8bkBbb2IlpCCx6qy20HEqHTaGXFQSnBVsa 5ddxSvdAjq1B9fIclYmpWsLlhJc= Received: by filter0452p1iad2.sendgrid.net with SMTP id filter0452p1iad2-4025-5A90DBEC-4 2018-02-24 03:28:44.447986204 +0000 UTC Received: from github-smtp2b-ext-cp1-prd.iad.github.net (github-smtp2b-ext-cp1-prd.iad.github.net [192.30.253.17]) by ismtpd0021p1iad2.sendgrid.net (SG) with ESMTP id GOI77_AxRpONwaRb2PBtYQ for hello@salmanwaheed.info; Sat, 24 Feb 2018 03:28:44.421 +0000 (UTC) Date: Sat, 24 Feb 2018 03:28:44 +0000 (UTC) From: React Native Bot notifications@github.com Reply-To: facebook/react-native reply@reply.github.com To: facebook/react-native react-native@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Message-ID: facebook/react-native/issues/17647/368195041@github.com In-Reply-To: facebook/react-native/issues/17647@github.com References: facebook/react-native/issues/17647@github.com Subject: Re: [facebook/react-native] RCTImageCache working incorrectly. (#17647) Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="--==_mimepart_5a90dae930d66_449b2b231dc04ed061168e"; charset=UTF-8 Content-Transfer-Encoding: 7bit Precedence: list X-GitHub-Sender: react-native-bot X-GitHub-Recipient: salmanwaheed X-GitHub-Reason: subscribed List-ID: facebook/react-native List-Archive: https://github.com/facebook/react-native List-Post: mailto:reply@reply.github.com List-Unsubscribe: mailto:unsub+00ef1b38f72217644254521982f7193172695a688c1a477d92cf0000000116a89ce992a169ce114299a8@reply.github.com, https://github.com/notifications/unsubscribe/AO8bOO5EW_1WwXoL9JHO6xP1xiAlrJN0ks5tX4DpgaJpZM4Risyr X-Auto-Response-Suppress: All X-GitHub-Recipient-Address: hello@salmanwaheed.info X-SG-EID: 92ws1MVnlto3blxqXlf5goB0ee0kdDGWR6vcWx8d648zaZk1qA8e1aKRepM6JruGOd9v4bBG49hKdl 22tEH+BJ1hwnttaTUI//4jt2bXxl9ZxDtxllNUa8foUrlscmeyCfEcPU1SYZISv00hXWQveeXOLhOV 1u44jOeb3w9I5qclefiFMN/NIYwKeqOauQY09iiFMnm8VSZ6P1KV76P3lQYWfABuKUAfGhFZ9NvP2P c= X-Spam-Status: No, score=-1.1 X-Spam-Score: -10 X-Spam-Bar: - X-Ham-Report: Spam detection software, running on the system "box1177.bluehost.com", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see root\@localhost for details.

Content preview: Thanks for posting this! It looks like you may not be using the latest version of React Native, v0.53.0, released on January 2018. Can you make sure this issue can still be reproduced in the latest version? [...]

Content analysis details: (-1.1 points, 5.0 required)

pts rule name description


0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: github.com] -0.5 SPF_PASS SPF: sender matches SPF record -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 0.0 HTML_IMAGE_ONLY_32 BODY: HTML: images with 2800-3200 bytes of words 0.0 HTML_MESSAGE BODY: HTML included in message -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.4 AWL AWL: Adjusted score from AWL reputation of From: address X-Spam-Flag: NO

----==_mimepart_5a90dae930d66_449b2b231dc04ed061168e Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

Thanks for posting this! It looks like you may not be using the latest vers= ion of React Native, v0.53.0, released on January 2018. Can you make sure t= his issue can still be reproduced in the latest version?=20

I am going to close this, but please feel free to open a new issue if you a= re able to confirm that this is still a problem in v0.53.0 or newer.

How to Contribute =E2=80=A2 What to Expect from Maintainers

--=20 You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/facebook/react-native/issues/17647#issuecomment-368195041=

----==_mimepart_5a90dae930d66_449b2b231dc04ed061168e Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

Thanks for posting this! It looks like you may not be using the latest v= ersion of React Native, v0.53.0, released on January 2018. Can you make sur= e this issue can still be reproduced in the latest version?

I am going to close this, but please feel free to open a new issue if yo= u are able to confirm that this is still a problem in v0.53.0 or newer.

How to Contribute =E2=80=A2 What to Expect from Maintainers

<p style=3D"font-size:small;-webkit-text-size-adjust:none;color:#666;">&mda= sh;
You are receiving this because you are subscribed to this thread.<= br />Reply to this email directly, <a href=3D"https://github.com/facebook/r= eact-native/issues/17647#issuecomment-368195041">view it on GitHub, or = <a href=3D"https://github.com/notifications/unsubscribe-auth/AO8bODpbMjYtsu= HxZpmaEqgWdKhr4DxRks5tX4DpgaJpZM4Risyr">mute the thread.<img alt=3D"" h= eight=3D"1" src=3D"https://github.com/notifications/beacon/AO8bOPh8ltjbs5f8= bAYUJs6LlPgj4tuOks5tX4DpgaJpZM4Risyr.gif" width=3D"1" />

<div itemscope itemtype=3D"http://schema.org/EmailMessage"> <div itemprop=3D"action" itemscope itemtype=3D"http://schema.org/ViewAction= "> <link itemprop=3D"url" href=3D"https://github.com/facebook/react-native/i= ssues/17647#issuecomment-368195041"> <meta itemprop=3D"name" content=3D"View Issue">
<meta itemprop=3D"description" content=3D"View this Issue on GitHub">

<script type=3D"application/json" data-scope=3D"inboxmarkup">{"api_version"= :"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"Gi= tHub"},"entity":{"external_key":"github/facebook/react-native","title":"fac= ebook/react-native","subtitle":"GitHub repository","main_image_url":"https:= //cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95f= c-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com= /assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":= {"name":"Open in GitHub","url":"https://github.com/facebook/react-native"}}= ,"updates":{"snippets":[{"icon":"PERSON","message":"@react-native-bot in #1= 7647: Thanks for posting this! It looks like you may not be using the lates= t version of React Native, v0.53.0, released on January 2018. Can you make = sure this issue can still be reproduced in the latest version? \n\nI am goi= ng to close this, but please feel free to open a new issue if you are able = to confirm that this is still a problem in v0.53.0 or newer.\n\n\u003csub\u= 003eHow to Contribute =E2=80=A2 What to Expect from Maintainers\u003c/sub= \u003e\n\n"}],"action":{"name":"View Issue","url":"https://github.com/faceb= ook/react-native/issues/17647#issuecomment-368195041"}}}=

----==_mimepart_5a90dae930d66_449b2b231dc04ed061168e--