DylanVann / react-native-fast-image

🚩 FastImage, performant React Native image component.
MIT License
8.09k stars 1.47k forks source link

setOnFastImageError #1035

Open NguyenHoangMinhkkkk opened 3 months ago

NguyenHoangMinhkkkk commented 3 months ago

My project using these version: "react-native": "0.68.7" "react-native-fast-image": "^8.6.3"

Code:

import DefaultImage from "@images/DefaultImage.png"
...
const [isErrorImage, setErrorImage] = React.useState(false);
...
<>
  {isErrorImage ? <Text>{"Image Error"}</Text> : null}
  <FastImage
    resizeMode="cover"
    style={{
      width: 200, height: 200,   borderRadius: 8, backgroundColor: "gray"
    }}
    onError={() => {
      InteractionManager.runAfterInteractions(() => {
        setErrorImage(true);
      });
    }}
    defaultSource={DefaultImage}
    source={{ uri: 'https://something...' }}
  />
</>

Everytime Image load failed, => Crash and get this error 👇 Screenshot 2024-03-22 at 14 49 40

After some searching on issues, this issue give me a idea.

And i tried this code 👇, the Crash gone away and project working fine.

- (void) setOnFastImageError: (RCTDirectEventBlock)onFastImageError {
    _onFastImageError = onFastImageError;

    if (self.hasErrored && _onFastImageError) {   // insead of if (self.hasErrored) {
        _onFastImageError(@{});
    }
}

And, finally, what should i do with this issue ? is the fix code above the right way to do (Should i use patch-package?) or i have to do something else ??