我通过一组对象进行映射,每个对象都有自己的图像路径:
this.props.images = [{url:'myimage.png'},{url:'myimage.png'},{url:'myimage.png'}];
在我的渲染中,我有类似的东西:
this.props.images.map((img) => { return (<Image source={uri: img.url} />)};
这很好用,图像出现了。但是,当我动态重新排序图像阵列时,图像不会改变(而动态传输的样式确实会发生变化)。
需要注意的是,我的数组是通过redux管理的道具。因此,组件在更改时会重新呈现。为了测试这个,我使用onLayout回调登录到控制台,并验证每次状态改变时调用它(即使图像本身没有改变源)。
我认为它与图像本身的实例没有先被删除有关,但是数组对于导致元素重新排序的原因一无所知。
关于如何解决这个问题的任何想法?
答案 0 :(得分:0)
也许您可以为图像添加密钥 this.props.images.map((img)=&gt; {return()};
答案 1 :(得分:0)
使用这个:-
<Image source ={{uri : 'YourUrl'+ new Date() }}/>
添加 new Date()
对我有用