react native recyclerlistview 只渲染一项

问题描述

我使用 recyclerlistview 并希望在单击时更改图标。但是 Recyclerlistview 不会重新渲染,除非我使用了扩展状态。但是随后所有行都发生了变化并且速度很慢。也许我的新图标不是直接显示在 0.500-800 毫秒内。为什么?

一小段只是一个例子。


const List = () => {
  const [changeIcon,setChangeIcon] = useState(false);
  const [updateRecycler,setUpdateRecycler] = useState({update: false})
  const updateRecycler = () => {
    setChangeIcon(prevstate => !prevstate);
    setUpdateRecycler(prevstate => !prevstate);
  };

  const roWrenderer = (type,data) => {
    const { name } = data.item;
    return (
      <View>
        <TouchableOpacity onPress={() => ChangeIcon()}>
          { changeIcon ?
            <Icon1 name="heart" size={32} color="black" /> : <Icon1 name="heart-o" size={32} color="black" />
          }
        </TouchableOpacity>
      </View>
    )
  };

  <RecyclerListView
    style={{flex: 1,paddingTop: 20}}
    roWrenderer={roWrenderer}
    extendedState={updateRecycler}
    optimizeforInsertDeleteAnimations
    dataProvider={dataList}
    layoutProvider={dataLayoutProvider}
  />

};

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)