我在我的react本机应用程序上实现了一个典型的“收藏夹项”功能,其中显示了一个项列表,每个项上都有一个“心”图标。如果不喜欢该商品,则将显示“空心”图标,否则将显示“实心”图标。点击一个空的心脏图标时,该项目已正确添加到我的favCakes数组中,请参考下面的代码:
renderFavHeart = () => {
console.log('FAVCAKES', this.props.favCakes)
//console.log('CAKE', this.props.cake)
const { cake } = this.props;
let isFav;
if (this.props.favCakes.length !== 0) {
isFav = this.props.favCakes.some(fav => cake.id === fav.cake)
if (isFav) {
return <Icon name="md-heart" onPress={this.handleUnfavCake} size={35} color="red" />
}
else return <Icon name="md-heart-empty" onPress={this.handleFavCake} size={35} color="red" />
}
else return <Icon name="md-heart-empty" onPress={this.handleFavCake} size={35} color="red" />
}
以下是减速器上的相关代码:
favCakes: [...state.favCakes, action.payload]
我已经通过console.log验证了我的favCakes数组已正确更改(添加的项),但是并没有重新渲染屏幕,也就是说,按下该按钮后,空白图标仍然存在。仅当我重新启动应用程序时,它才会相应地更新。任何见识的人吗?预先感谢。