React-Native学习之路(七)ListView

ListView

2018年7月22日

15:53

一、实现ListView基本显示中的两个必要属性:

1.dataSource:

        dataSource是ListView的数据源,首先在state中去创建一个ListView.DataSource数据源,然后通过cloneWithRows方法为其传递一个数组,其中提供给数据源的rowHasChanged函数可以告诉ListView它是否需要重绘一行数据,即数据是否发生了改变,即在需要重绘界面的时候会进行判断,如果之前页面中的改行数据没有发生变化,则不再进行重绘,否则进行重绘。

到这一步算是成功初始化数据源

2.renderRow():

        它会从数据源中接收一条数据,然后返回一个完成渲染的视图(View),因为它会直接返回一个渲染完成的视图,所以我们需要对每个Item进行的操作都在这里面进行,其中包括了Item的点击事件和Item的显示等相关操作

我这里设置了点击事件,可以弹一个Toast,这里弹个toast还需要导入一个easy-toast(垃圾语言)

然后在下面设置了text来显示我的数据

二、实现上拉刷新(RefreshControl):

需要用refreshControl,这里我们用RefreshControl,这当中有两个属性refreshing和onRefresh

1).refreshing:在这里可以引用isLoading来判断状态,这里我们在state里默认设置的是true

2).onRefresh:

onLoad就是自己写的一个方法,可以用来设置刷新时它转的时间,然后想要它不转,就用setstate把isLoading设置为false就好

然后这个onLoad函数放置的位置是比较灵活的,比如在这个例子中,我尽快看到效果,就把它放在了constructor里面,这样app一加载,我的这个刷新条就会开始转了,然而在之后的刷新中那个刷新条并没有按照我设置的3秒来显示,应该是我这个3秒设定只适用于开始

 

另外如有需要还可以设置分隔线和页脚:

同时对应的还可以渲染页眉用renderHeader()用法与footer类似

这些随便设置一下样式就行了

 

使用ListView可能遇到的问题:

使用这个东西很容易报错,目前我使用了两次,两次全都报错,还花了我不少时间

1.ListView外层一定要有一个View来包裹,如果那个View是父View的,记得设置为container(flex:1)

2.ListView的dataSource一定要设置对地方,比如我这个例子里面的,设置错了位置也报和上面同样的错误,所以,仅从它的报错来看,我们并不能很好的去分辨到底错在哪里,所以在用它时一定要多注意。

猜你喜欢

转载自blog.csdn.net/Leon_Jcy/article/details/81193412
今日推荐