效果图:
参考这篇文章(http://www.jianshu.com/p/b7788c3d106e)实现了简单的Tab+ViewPager效果。然后将里面的Text改为FlatList来显示更多数据。接着我想点击里面的数据跳转到另一个界面。但是没有找到FlatList 的点击回调函数,找了找资料才发现,不像Android里的控件有onClick方法,React Native里需要在要实现点击相应的控件外面加上”Touchable”开头的一系列组件来实现的。(http://reactnative.cn/docs/0.47/handling-touches.html#content)
例如:
class MyButton extends Component {
_onPressButton() {
console.log("You tapped the button!");
}
render() {
return (
<TouchableHighlight onPress={
this._onPressButton}>
<Text>Button</Text>
</TouchableHighlight>
);
}
}
在FlatList里的Text外加入Touchable标签后(只需关注Touchable里的)
<FlatList
data={[
{
key: 'Devin'},
{
key: 'Jackson'},
{
key: 'James'},
{
key: 'Joel'},
{
key: 'John'},
{
key: 'Jillian'},
{
key: 'Jimmy'},
{
key: 'Julie'},
]}
renderItem={
({item}) =>
<TouchableNativeFeedback
onPress = {
this.onPress}>
<Text style={styles.item}>{item.key}</Text>
</TouchableNativeFeedback>
}
/>
。。。
onPress(){
。。。
}
这样可以相应点击事件了,但是还需要知道点击的是哪个item的Text,需要把item传递给onPress(),我以为只需修改两行代码
。。。
onPress = {this.onPress(item)}>
。。。
onPress(item){
。。。
}
就可以了,实际上是不行的,React Native里传递参数是这样写的
。。。
onPress = {
this.onPress.bind(this,item)}>
。。。
onPress(item){
。。。
}
然后把FlatList封装一下,命名为MyFlatList
class MyFlatList