FlatList的onClick转到下一屏幕

问题描述:

我如何做一个Flatlist导航到下一个屏幕时,单击某一行是Flatlist内的反应母语?FlatList的onClick转到下一屏幕

编辑:我贴我的JS文件中的所有代码。

这里是我的flatlist代码:

import React, { Component } from 'react'; 
import { 
    StyleSheet, 
    Text, 
    View, 
    FlatList, 
    Button, 
    TouchableOpacity, 
    TouchableHighlight 
} from 'react-native' 

const Tasks = (props) => { 
    const { navigate } = props.navigation; 
    return (
     <View style={styles.container}> 
     <FlatList 
      data={[ 
      {key: 'Task 1'}, 
      {key: 'Task 2'}, 
      {key: 'Task 3'}, 
      {key: 'Task 4'}, 
      {key: 'Task 5'}, 
      ]} 
      renderItem={({item}) => <TouchableHighlight onPress={() => this.goToNextScreen()}> 
     <Text style={styles.item}>{item.key}</Text>} 
</TouchableHighlight>} 
     /> 
      <TouchableOpacity style={{ height: 50, marginTop: 5, marginLeft: 100, marginRight: 100 }}> 
     <Button 
       onPress={()=>navigate('Steps')} 
       title="Steps" 
       /> 
       </TouchableOpacity> 
     </View> 
    ); 
    } 


const styles = StyleSheet.create({ 
    container: { 
    flex: 1, 
    paddingTop: 22 
    }, 
    item: { 
    padding: 10, 
    fontSize: 18, 
    height: 44, 
    }, 
}) 

Tasks.navigationOptions = { 
    title: 'Task Order', 
}; 

export default Tasks 
+0

这是**不* *完整的代码!没有render()函数?什么是道具导航? – David

+0

它在index.android.js – orange

+0

即使它在index.android.js,这将无法正常工作没有渲染功能! – David

我有那个简单的例子:

//Tasks Component 
const Tasks = (props) => { 
    const { navigate } = props.navigation; 
    //function to go to next screen 
    goToNextScreen =() => { 
     return navigate('Detail'); 
    } 
    return (
     <View> 
     <FlatList 
      data={[ 
      {key: 'Task 1'}, 
      {key: 'Task 2'}, 
      {key: 'Task 3'}, 
      {key: 'Task 4'}, 
      {key: 'Task 5'}, 
      ]} 
      renderItem={({item}) => { 
       return(
       <TouchableHighlight onPress={() => this.goToNextScreen()}> 
        <Text >{item.key}</Text> 
       </TouchableHighlight> 
      ) 
      } 
      } 
     /> 
     </View> 
    ); 
} 

//example for detail screen 
const Detail = (props) => { 
    const { navigate } = props.navigation; 
    return(
     <View><Text>Detail Screen</Text></View> 
    ); 
} 

//initial screen 
const App = StackNavigator({ 
    Tasks: {screen: Tasks}, 
    Detail: {screen: Detail}, 
}) 

也许可以帮助你,谢谢:)

+0

给我一个错误,先生,说一个有效的反应元素(或空)必须返回 – orange

+0

我认为有错误的代码在你的问题:) –

+0

为什么你把按钮在TouchableHighlight的底部?你可以使用TouchableHighlight,并不需要再次按键确定 –