Nativescript Vue:RadListView不是';数据更改时不刷新

Nativescript Vue:RadListView不是';数据更改时不刷新,nativescript,nativescript-vue,Nativescript,Nativescript Vue,我有一个RadListView作为道具,totalMovies,它是一个数组。每部电影都包含一个图像字段和收藏夹字段。如果favorite字段为false,则会显示一个未填充的心脏图像,并在点击时触发一个事件,该事件会将该电影的favorite更改为true。单击心脏后,我在控制台中看到它已注册,并且我再次使用VueTools验证了totalMovies是否将我喜爱的电影显示为具有favorite:true,但显示的图像始终是未填充的心脏图像。我猜测或假设RadListView没有正确刷新 &l

我有一个
RadListView
作为道具,
totalMovies
,它是一个数组。每部电影都包含一个
图像
字段和
收藏夹
字段。如果
favorite
字段为
false
,则会显示一个未填充的心脏图像,并在
点击
时触发一个事件,该事件会将该电影的
favorite
更改为true。单击心脏后,我在控制台中看到它已注册,并且我再次使用VueTools验证了
totalMovies
是否将我喜爱的电影显示为具有
favorite:true
,但显示的图像始终是
未填充的心脏图像。我猜测或假设RadListView没有正确刷新

<RadListView
    for="(movie,index) in totalMovies" 
    @itemTap="onItemTap($event)"
    itemHeight="80"
    :key="index"
    gridSpanCount=1
>
    <v-template>
        <FlexboxLayout class="item-row" :key="index" flexDirection="row" width="100%" height="100%">
            <Image v-if="movie.favorite" width="20" src="~/assets/images/heart-filled.png" />
            <Image v-else @tap="handleToggleFavorite(movie)" width="20" src="~/assets/images/heart-unfilled.png" />
        </FlexboxLayout>
    </v-template>
</RadListView>


编辑:添加游乐场:

ObservableArray侦听数组索引的更改并刷新列表视图。所以,如果您使用的是ObservalArray,请尝试使用
setItem
方法更新索引中的项


否则,在您的情况下,简单数组应该可以工作,因为Vue可以检测到更改。

建议保持模板静态,使用一个图像并根据条件绑定src。谢谢@Manoj。我试试看。我实际上找到了另一个解决办法。我在切换收藏夹的函数中添加了这个:
this.$refs.radListView.nativeView.refresh()并且它可以工作。我认为这是一个糟糕的处理方法?这会刷新整个列表视图,所以是的,这可能不是最好的选择。@Manoj我正在尝试您的解决方案,但不知道如何才能做到这一点<代码>
。我将
heartFilled
设置为该资产url所在组件的初始数据,将
heartUnfilled
设置为该资产url的初始数据。我认为我做得不对。我假设您的意思是这样做:
并且让
资产
是动态的,但是如果它基于看起来不错的循环,那么initialData
资产
怎么可能是动态的,如果您仍然有问题,请共享一个示例