当项目值在react-native中更改时更新状态

问题描述 投票:0回答:1

我正在做一个让用户喜欢或不喜欢帖子的应用程序。默认情况下,当一个帖子加载时,有效负载中有一个名为hasUserLike的部分设置为false。因此创建了一个函数,当单击一个按钮时,它应该将hasUserLike更新为true,这样做应该隐藏和取消隐藏屏幕上的某些元素并显示另一个元素。

功能

likePostComment = (item) => {
    item.hasUserLike = true;
    alert(item.hasUserLike)
}

视图

{
item.hasUserLike === false ? 
  <Icon
  onPress={()=>onLikePostComment(item)}
  name='md-thumbs-up'
  type='ionicon'
  color='#778899'
  />
  : null
}

{
item.hasUserLike === true ? 
  <Icon
  onPress={()=>onDisLikePostComment(item)}
  name='md-thumbs-up'
  type='ionicon'
  color='#36c'
  />
  : null
}

当值更改为true时,即使警报弹出为真,显示的组件也不会显示

reactjs react-native
1个回答
0
投票

当您改变对象item时,它不会导致重新渲染,因此您的视图不会更新。

使其重新渲染的一种方法是在您喜欢/不喜欢帖子时更改状态中的值。

如果在喜欢/不喜欢帖子时你没有任何状态可以改变你可以做这样的事情来强制重新渲染。

likePostComment = (item) => {
    item.hasUserLike = true;
    alert(item.hasUserLike)
    this.setState({render: Math.random()}); 
}

虽然你可能最好管理喜欢/不喜欢该州的职位。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.