1.0.0 • Published 4 years ago

ntq-react-native-tree-view v1.0.0

Weekly downloads
6
License
MIT
Repository
github
Last release
4 years ago

react-native-nested-listview

UI component for React Native that allows to create a listview with N levels of nesting

platforms CircleCI codecov npm github release CodeFactor

Table of contents

  1. Show
  2. Usage
  3. Props
  4. Examples
  5. Roadmap

Show

react-native-nested-listview react-native-nested-listview

Usage

yarn add react-native-nested-listview
import NestedListView, {NestedRow} from 'react-native-nested-listview'

const data = [{title: 'Node 1', items: [{title: 'Node 1.1'}, {title: 'Node 1.2'}]}]

<NestedListView
  data={data}
  getChildrenName={(node) => 'items'}
  onNodePressed={(node) => alert('Selected node')}
  renderNode={(node, level) => (
    <NestedRow
      level={level}
      style={styles.row}
    >
      <Text>{node.title}</Text>
    </NestedRow>
  )}
/>

Props

NestedListView

PropDescriptionTypeDefault
dataArray of nested itemsArrayRequired
renderNodeTakes a node from data and renders it into the NestedlistView. The function receives {node, level} (see Usage) and must return a React element.FunctionRequired
keyGet key from node. The function receives (node) and must return a unique key.FunctionNot required
getChildrenNameFunction to determine in a node where are the children, by default NestedListView will try to find them in itemsFunctionitems
onNodePressedFunction called when a node is pressed by a userFunctionNot required
extraDataA marker property for telling the list to re-renderBooleanNot required
keepOpenedStateProp for keeping the opened state of each node when data passed to the list changesBooleanNot required

NestedRow

PropDescriptionTypeDefault
heightHeight of the rownumber50
childrenContent of the NestedRowComponentRequired
levelLevel where a given node isnumberRequired
styleNestedRow container styleStyleNot required

Examples

You can find examples here.

React NativeLibrary
0.61.40.8.0

Roadmap

  • Autoscrolling optionally
  • Expand/contract nodes programatically
  • Support animations