【问题标题】:After loading images on scroll image gets disappeared react native在滚动图像上加载图像后消失反应本机
【发布时间】:2017-12-11 19:12:17
【问题描述】:

我使用了 react-native 的 ListView 组件,并用它来渲染产品细节和图片。

现在,加载图像后,我正在向下滚动视图。回到以前的产品时,只有图像消失了,似乎又从源头加载了。

图片来源是一个网址。

请告诉我如何将已加载到当前 react Native android 屏幕中的图像持久化。

我正在使用:

 "dependencies": {
    "react": "16.0.0-alpha.12",
    "react-native": "0.45.1",
    "react-native-keyboard-aware-scroll-view": "^0.2.9",
    "react-native-vector-icons": "^4.2.0",
    "react-navigation": "^1.0.0-beta.11"
  },

更新代码供参考:

     <ListView
         renderRow={this._renderRow.bind(this)}
         dataSource={this.state.dataSource}
         pageSize={data.length}/>    
     </View>

_renderRow(data){
    return (
            <View style={styles.boxContainer}>
                <Image
                    style={styles.image}
                    resizeMode={'contain'}
                    source={{uri: "https://vesyl.in/"+data.image_url}}
                />
            </View>
        </View>
    )
}

来自 API 的响应:

data = [];
  for(let i=0; i<responseJson.data.length; i++){
     var t = responseJson.data;
     data.push(t[i]);
  }

const ds = new ListView.DataSource({rowHasChanged: (r1, r2)=>r1!==r2});
this.setState({dataSource: ds.cloneWithRows(data)});

data.image_url 是包含图片 url 的对象。

【问题讨论】:

  • 由于您使用的是 RN 0.45,我建议您使用 FlatList 而不是 ListView。除此之外,我真的需要查看您的代码以进一步帮助您。
  • @dejakob 请检查代码
  • 能否在_renderRow中添加console.log并检查它是否被重新渲染?
  • 你想在控制台检查什么?我正在正确获取图像,问题是如果我滚动回顶部,它不会持续存在。
  • 您是否通过在Image 组件中使用类似cache 属性(仅限iOS)或使用类似react-native-img-cache 的包来检查这是否是缓存问题?

标签: android image react-native react-native-android react-native-listview


【解决方案1】:

在您的 androidManifest 文件中尝试 &lt;application&gt; 下的 android:largeHeap="true"。 此外,将属性removeClippedSubviews={true} 添加到您的scrollViews。

【讨论】:

    猜你喜欢
    • 2022-12-05
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-08
    相关资源
    最近更新 更多