使用react-native中的节头来水平显示数据

时间:2017-11-20 07:34:52

标签: javascript react-native

  

我正在使用react-native运行示例应用程序。我正在使用节标题   用于显示数据列表。在这种情况下,数据将以垂直方式显示。我的问题是如何显示数据   横向使用部分列表。请给我任何建议。谢谢   你。

     

这是我的代码:

 import { StyleSheet, Text, View, ListView, TouchableOpacity, Image, TouchableWithoutFeedback, ScrollView, SectionList, TextInput, WebView, Platform, FlatList } from 'react-native'
    var setListArray = [
      {
        name: 'Hotel 1',
        data: [
          {
            id: '1'
          },
          {
            id: '2'
          },
          {
            id: '3'
          },
          {
            id: '4'
          },
          {
            id: '5'
          },
          {
            id: '6'
          },
          {
            id: '7'
          },
          {
            id: '8'
          },
          {
            id: '9'
          },
          {
            id: '10'
          },
          {
            id: '11'
          },
          {
            id: '12'
          },
          {
            id: '13'
          },
          {
            id: '14'
          },
          {
            id: '15'
          },
          {
            id: '16'
          },
          {
            id: '17'
          },
          {
            id: '18'
          },
          {
            id: '19'
          },
          {
            id: '20'
          }
        ]
      },
      {
        name: 'Hotel 2',
        data: [
          {
            id: '1'
          },
          {
            id: '2'
          },
          {
            id: '3'
          },
          {
            id: '4'
          },
          {
            id: '5'
          },
          {
            id: '6'
          },
          {
            id: '7'
          },
          {
            id: '8'
          },
          {
            id: '9'
          },
          {
            id: '10'
          }
        ]
      },
      {
        name: 'Hotel 3',
        data: [
          {
            id: '1'
          },
          {
            id: '2'
          },
          {
            id: '3'
          },
          {
            id: '4'
          },
          {
            id: '5'
          },
          {
            id: '6'
          },
          {
            id: '7'
          },
          {
            id: '8'
          },
          {
            id: '9'
          },
          {
            id: '10'
          }
        ]
      }
    ]
    export default class Example extends React.Component {
    constructor(props) {
        super(props)
        this.state = {
      dataSource: new ListView.DataSource({ sectionHeaderHasChanged: (r1, r2) => r1 !== r2, rowHasChanged: (r1, r2) => r1 !== r2 }),
    setListArray: []
    }
    }
    componentWillMount() {

        this.setState({
          setListArray: setListArray
        })
      }
    renderSectionHeader(section) {

        return (
          <View style={{ flex: 1, height: 30, alignItems: 'center', justifyContent: 'center', backgroundColor: 'black' }}>
            <Text style={{ color: 'white' }}>{section.section.name}</Text>
          </View>
        )
      }
    renderItem(item) {
    return (
          <View style={{ flexWrap: 'wrap', marginTop: 10, marginRight: 10, marginBottom: 10 }}>
            <TouchableOpacity>
              <Image style={{ height: 20, width: 20, marginLeft: 10 }} source={require('../images/available.png')} />
            </TouchableOpacity>
          </View>
        )
    }
      render() {
    return(
    <View style={{ flex: 1, marginTop: 10, flexWrap: 'wrap' }}>
      <SectionList sections={this.state.setListArray} renderItem={this.renderItem.bind(this)} renderSectionHeader={this.renderSectionHeader} />
</View>
    )
    }
    }
  

以下是我的截图:

enter image description here

  

我想显示如下数据:

enter image description here

1 个答案:

答案 0 :(得分:0)

我认为您应该处理函数renderItem中的所有节数据,而不仅仅是一个节数据。一些代码如

<View style={{ flexWrap: 'wrap', marginTop: 10, marginRight: 10, marginBottom: 10 }}>
{
 section.data.map((item)=>{
    return (<TouchableOpacity>
      <Image style={{ height: 20, width: 20, marginLeft: 10 }} source={require('../images/available.png')} />
    </TouchableOpacity>);
});
}  
</View>