Searching through ListView










1















I've read through the react native docs and through react native express.



I'm trying to learn react native trough experience and building apps.



My current issue happens after I created an static ListView and try to filter through it. I've found an example of how another was able to achieve it, but I get the error:




undefined is not an object (evaluating 'this.state.rows.length')




I though rows was defined in:



 state = 
dataSource: ds.cloneWithRows(rows)



So I'm confused to where the error comes from.



app file



import React, Component from 'react';

import
AppRegistry,
ListView,
View,
Text,
StyleSheet,
Image,
Button,
TouchableOpacity,
TextInput,
ScrollView,
Icon,
from 'react-native';

import createStackNavigator, from 'react-navigation';

const image1 = require('./assets/card-0.png')
const image2 = require('./assets/card-2.png')
const image3 = require('./assets/card-3.png')
const image4 = require('./assets/card-4.png')
const image5 = require('./assets/card-5.png')

// Row data (hard-coded)
const rows = [
id: 0, club: 'Club Air', genre: 'Hip Hop / R&B', image: image1,
id: 1, club: 'Abe', genre: 'Hip Hop / R&B', image: image2,
id: 2, club: 'John Doe', genre: 'Hip Hop / R&B', image: image3,
id: 3, club: 'Encore', genre: 'Hip Hop / R&B', image: image4,
id: 4, club: 'Jimmy Whoo', genre: 'Hip Hop / R&B', image: image5,
]

// Row comparison function
const rowHasChanged = (r1, r2) => r1.id !== r2.id

// DataSource template object
const ds = new ListView.DataSource(rowHasChanged)

export class HomeScreen extends Component
static navigationOptions =
// title: ' Alpha',
header: null,
;

state =
dataSource: ds.cloneWithRows(rows)


setSearchText(event)
const searchText = event.nativeEvent.text;

clubsLength = this.state.rows.length;
aClub= this.state.rows;

const filteredClubs = this.state.rows.filter(checkTitle);
console.log("clubs: " + JSON.stringify(filteredClubs));

function checkClub()
for(i=0;i<clubsLength;i++)
if(aClub[i].club === searchText)
console.log("found: " + aClub[i].club);
return aClub[i];




this.setState(
searchText,
dataSource: this.state.dataSource.cloneWithRows(filteredClubs),
);


renderRow = (rowData) =>
return (

<View style=styles.card>
<TouchableOpacity onPress=() => this.props.navigation.navigate('Details')>
<View style=styles.innerCard>
<Image
style=styles.imageCard
source=rowData.image
/>
<Text style=styles.innerText>
rowData.club
</Text>
</View>
<View style=styles.outerCard>
<Text style=styles.outerText>
rowData.genre
</Text>
<Text style = styles.outerTexts>
View
</Text>
</View>
</TouchableOpacity>
</View>
)



render()
return (

<ScrollView style=styles.container>
<View style=styles.SearchBarContainer>
<TextInput
placeholder="Search"
value=this.state.searchText
onChange=this.setSearchText.bind(this)
style=styles.searchBar
underlineColorAndroid="#DD016B"
selectionColor="#DD016B"
/>
</View>
<ListView
style=styles.listContainer
dataSource=this.state.dataSource
renderRow=this.renderRow
/>
</ScrollView>

)



const styles = StyleSheet.create(
container:
flex: 1,
backgroundColor: 'black',
width:'100%',
// height: 299,

,
SearchBarContainer:
justifyContent: 'center',
alignItems: 'center'
,
listContainer:
flex: 1,
backgroundColor: 'black',
width:'100%',
// height: 299,
,
button:
backgroundColor: 'transparent',
width: '50%',
,
textInput:
height: 30,
borderWidth: 1,
borderColor: '#DD016B',
marginBottom: 10,
marginHorizontal: 10,
,
searchBar:
textAlign: 'center',
height: 40,
width:200,
color: '#DD016B',
borderColor: '#DD016B',
// selectionColor: '#DD016B',
// borderWidth: 1,
// borderRadius: 5,
marginBottom:20,
marginTop: 20,
justifyContent: 'center',
,
card:
marginBottom: 15,
,
innerCard:
height:110,
,
imageCard:
width: 500,
height: 150,
paddingTop: 0,
paddingBottom: 0,
marginBottom:0,
marginTop: 0,
,
innerText:
color: 'white',
marginBottom: 0,
fontSize: 35,
position: 'absolute',
top: 100,
,
outerText:
color: '#DD016B',
marginBottom: 0,
marginTop: 50,
width: 100,
,
)

AppRegistry.registerComponent('App', () => App)

export default createStackNavigator(
Home:
screen: HomeScreen,
,
,
initialRouteName: 'Home',
);









share|improve this question
























  • Your HomeScreen component doesn't have rows in its state.

    – Tholle
    Nov 11 '18 at 21:23











  • @Tholle Could you care to explain to me, or where I can find it explained how to do this?

    – Salman
    Nov 11 '18 at 22:13











  • You have your rows array as a variable outside of your component. If you want it in your state you can write e.g. state = dataSource: ds.cloneWithRows(rows), rows or reference rows instead of this.state.rows.

    – Tholle
    Nov 11 '18 at 22:16











  • @Tholle , that seemed to have helped. It seems the app searches but can't find the title, but i'll keep troubleshooting and looking trough the docs. You can post it as an answer so I can close this question. Thank you! :)

    – Salman
    Nov 12 '18 at 9:52















1















I've read through the react native docs and through react native express.



I'm trying to learn react native trough experience and building apps.



My current issue happens after I created an static ListView and try to filter through it. I've found an example of how another was able to achieve it, but I get the error:




undefined is not an object (evaluating 'this.state.rows.length')




I though rows was defined in:



 state = 
dataSource: ds.cloneWithRows(rows)



So I'm confused to where the error comes from.



app file



import React, Component from 'react';

import
AppRegistry,
ListView,
View,
Text,
StyleSheet,
Image,
Button,
TouchableOpacity,
TextInput,
ScrollView,
Icon,
from 'react-native';

import createStackNavigator, from 'react-navigation';

const image1 = require('./assets/card-0.png')
const image2 = require('./assets/card-2.png')
const image3 = require('./assets/card-3.png')
const image4 = require('./assets/card-4.png')
const image5 = require('./assets/card-5.png')

// Row data (hard-coded)
const rows = [
id: 0, club: 'Club Air', genre: 'Hip Hop / R&B', image: image1,
id: 1, club: 'Abe', genre: 'Hip Hop / R&B', image: image2,
id: 2, club: 'John Doe', genre: 'Hip Hop / R&B', image: image3,
id: 3, club: 'Encore', genre: 'Hip Hop / R&B', image: image4,
id: 4, club: 'Jimmy Whoo', genre: 'Hip Hop / R&B', image: image5,
]

// Row comparison function
const rowHasChanged = (r1, r2) => r1.id !== r2.id

// DataSource template object
const ds = new ListView.DataSource(rowHasChanged)

export class HomeScreen extends Component
static navigationOptions =
// title: ' Alpha',
header: null,
;

state =
dataSource: ds.cloneWithRows(rows)


setSearchText(event)
const searchText = event.nativeEvent.text;

clubsLength = this.state.rows.length;
aClub= this.state.rows;

const filteredClubs = this.state.rows.filter(checkTitle);
console.log("clubs: " + JSON.stringify(filteredClubs));

function checkClub()
for(i=0;i<clubsLength;i++)
if(aClub[i].club === searchText)
console.log("found: " + aClub[i].club);
return aClub[i];




this.setState(
searchText,
dataSource: this.state.dataSource.cloneWithRows(filteredClubs),
);


renderRow = (rowData) =>
return (

<View style=styles.card>
<TouchableOpacity onPress=() => this.props.navigation.navigate('Details')>
<View style=styles.innerCard>
<Image
style=styles.imageCard
source=rowData.image
/>
<Text style=styles.innerText>
rowData.club
</Text>
</View>
<View style=styles.outerCard>
<Text style=styles.outerText>
rowData.genre
</Text>
<Text style = styles.outerTexts>
View
</Text>
</View>
</TouchableOpacity>
</View>
)



render()
return (

<ScrollView style=styles.container>
<View style=styles.SearchBarContainer>
<TextInput
placeholder="Search"
value=this.state.searchText
onChange=this.setSearchText.bind(this)
style=styles.searchBar
underlineColorAndroid="#DD016B"
selectionColor="#DD016B"
/>
</View>
<ListView
style=styles.listContainer
dataSource=this.state.dataSource
renderRow=this.renderRow
/>
</ScrollView>

)



const styles = StyleSheet.create(
container:
flex: 1,
backgroundColor: 'black',
width:'100%',
// height: 299,

,
SearchBarContainer:
justifyContent: 'center',
alignItems: 'center'
,
listContainer:
flex: 1,
backgroundColor: 'black',
width:'100%',
// height: 299,
,
button:
backgroundColor: 'transparent',
width: '50%',
,
textInput:
height: 30,
borderWidth: 1,
borderColor: '#DD016B',
marginBottom: 10,
marginHorizontal: 10,
,
searchBar:
textAlign: 'center',
height: 40,
width:200,
color: '#DD016B',
borderColor: '#DD016B',
// selectionColor: '#DD016B',
// borderWidth: 1,
// borderRadius: 5,
marginBottom:20,
marginTop: 20,
justifyContent: 'center',
,
card:
marginBottom: 15,
,
innerCard:
height:110,
,
imageCard:
width: 500,
height: 150,
paddingTop: 0,
paddingBottom: 0,
marginBottom:0,
marginTop: 0,
,
innerText:
color: 'white',
marginBottom: 0,
fontSize: 35,
position: 'absolute',
top: 100,
,
outerText:
color: '#DD016B',
marginBottom: 0,
marginTop: 50,
width: 100,
,
)

AppRegistry.registerComponent('App', () => App)

export default createStackNavigator(
Home:
screen: HomeScreen,
,
,
initialRouteName: 'Home',
);









share|improve this question
























  • Your HomeScreen component doesn't have rows in its state.

    – Tholle
    Nov 11 '18 at 21:23











  • @Tholle Could you care to explain to me, or where I can find it explained how to do this?

    – Salman
    Nov 11 '18 at 22:13











  • You have your rows array as a variable outside of your component. If you want it in your state you can write e.g. state = dataSource: ds.cloneWithRows(rows), rows or reference rows instead of this.state.rows.

    – Tholle
    Nov 11 '18 at 22:16











  • @Tholle , that seemed to have helped. It seems the app searches but can't find the title, but i'll keep troubleshooting and looking trough the docs. You can post it as an answer so I can close this question. Thank you! :)

    – Salman
    Nov 12 '18 at 9:52













1












1








1








I've read through the react native docs and through react native express.



I'm trying to learn react native trough experience and building apps.



My current issue happens after I created an static ListView and try to filter through it. I've found an example of how another was able to achieve it, but I get the error:




undefined is not an object (evaluating 'this.state.rows.length')




I though rows was defined in:



 state = 
dataSource: ds.cloneWithRows(rows)



So I'm confused to where the error comes from.



app file



import React, Component from 'react';

import
AppRegistry,
ListView,
View,
Text,
StyleSheet,
Image,
Button,
TouchableOpacity,
TextInput,
ScrollView,
Icon,
from 'react-native';

import createStackNavigator, from 'react-navigation';

const image1 = require('./assets/card-0.png')
const image2 = require('./assets/card-2.png')
const image3 = require('./assets/card-3.png')
const image4 = require('./assets/card-4.png')
const image5 = require('./assets/card-5.png')

// Row data (hard-coded)
const rows = [
id: 0, club: 'Club Air', genre: 'Hip Hop / R&B', image: image1,
id: 1, club: 'Abe', genre: 'Hip Hop / R&B', image: image2,
id: 2, club: 'John Doe', genre: 'Hip Hop / R&B', image: image3,
id: 3, club: 'Encore', genre: 'Hip Hop / R&B', image: image4,
id: 4, club: 'Jimmy Whoo', genre: 'Hip Hop / R&B', image: image5,
]

// Row comparison function
const rowHasChanged = (r1, r2) => r1.id !== r2.id

// DataSource template object
const ds = new ListView.DataSource(rowHasChanged)

export class HomeScreen extends Component
static navigationOptions =
// title: ' Alpha',
header: null,
;

state =
dataSource: ds.cloneWithRows(rows)


setSearchText(event)
const searchText = event.nativeEvent.text;

clubsLength = this.state.rows.length;
aClub= this.state.rows;

const filteredClubs = this.state.rows.filter(checkTitle);
console.log("clubs: " + JSON.stringify(filteredClubs));

function checkClub()
for(i=0;i<clubsLength;i++)
if(aClub[i].club === searchText)
console.log("found: " + aClub[i].club);
return aClub[i];




this.setState(
searchText,
dataSource: this.state.dataSource.cloneWithRows(filteredClubs),
);


renderRow = (rowData) =>
return (

<View style=styles.card>
<TouchableOpacity onPress=() => this.props.navigation.navigate('Details')>
<View style=styles.innerCard>
<Image
style=styles.imageCard
source=rowData.image
/>
<Text style=styles.innerText>
rowData.club
</Text>
</View>
<View style=styles.outerCard>
<Text style=styles.outerText>
rowData.genre
</Text>
<Text style = styles.outerTexts>
View
</Text>
</View>
</TouchableOpacity>
</View>
)



render()
return (

<ScrollView style=styles.container>
<View style=styles.SearchBarContainer>
<TextInput
placeholder="Search"
value=this.state.searchText
onChange=this.setSearchText.bind(this)
style=styles.searchBar
underlineColorAndroid="#DD016B"
selectionColor="#DD016B"
/>
</View>
<ListView
style=styles.listContainer
dataSource=this.state.dataSource
renderRow=this.renderRow
/>
</ScrollView>

)



const styles = StyleSheet.create(
container:
flex: 1,
backgroundColor: 'black',
width:'100%',
// height: 299,

,
SearchBarContainer:
justifyContent: 'center',
alignItems: 'center'
,
listContainer:
flex: 1,
backgroundColor: 'black',
width:'100%',
// height: 299,
,
button:
backgroundColor: 'transparent',
width: '50%',
,
textInput:
height: 30,
borderWidth: 1,
borderColor: '#DD016B',
marginBottom: 10,
marginHorizontal: 10,
,
searchBar:
textAlign: 'center',
height: 40,
width:200,
color: '#DD016B',
borderColor: '#DD016B',
// selectionColor: '#DD016B',
// borderWidth: 1,
// borderRadius: 5,
marginBottom:20,
marginTop: 20,
justifyContent: 'center',
,
card:
marginBottom: 15,
,
innerCard:
height:110,
,
imageCard:
width: 500,
height: 150,
paddingTop: 0,
paddingBottom: 0,
marginBottom:0,
marginTop: 0,
,
innerText:
color: 'white',
marginBottom: 0,
fontSize: 35,
position: 'absolute',
top: 100,
,
outerText:
color: '#DD016B',
marginBottom: 0,
marginTop: 50,
width: 100,
,
)

AppRegistry.registerComponent('App', () => App)

export default createStackNavigator(
Home:
screen: HomeScreen,
,
,
initialRouteName: 'Home',
);









share|improve this question
















I've read through the react native docs and through react native express.



I'm trying to learn react native trough experience and building apps.



My current issue happens after I created an static ListView and try to filter through it. I've found an example of how another was able to achieve it, but I get the error:




undefined is not an object (evaluating 'this.state.rows.length')




I though rows was defined in:



 state = 
dataSource: ds.cloneWithRows(rows)



So I'm confused to where the error comes from.



app file



import React, Component from 'react';

import
AppRegistry,
ListView,
View,
Text,
StyleSheet,
Image,
Button,
TouchableOpacity,
TextInput,
ScrollView,
Icon,
from 'react-native';

import createStackNavigator, from 'react-navigation';

const image1 = require('./assets/card-0.png')
const image2 = require('./assets/card-2.png')
const image3 = require('./assets/card-3.png')
const image4 = require('./assets/card-4.png')
const image5 = require('./assets/card-5.png')

// Row data (hard-coded)
const rows = [
id: 0, club: 'Club Air', genre: 'Hip Hop / R&B', image: image1,
id: 1, club: 'Abe', genre: 'Hip Hop / R&B', image: image2,
id: 2, club: 'John Doe', genre: 'Hip Hop / R&B', image: image3,
id: 3, club: 'Encore', genre: 'Hip Hop / R&B', image: image4,
id: 4, club: 'Jimmy Whoo', genre: 'Hip Hop / R&B', image: image5,
]

// Row comparison function
const rowHasChanged = (r1, r2) => r1.id !== r2.id

// DataSource template object
const ds = new ListView.DataSource(rowHasChanged)

export class HomeScreen extends Component
static navigationOptions =
// title: ' Alpha',
header: null,
;

state =
dataSource: ds.cloneWithRows(rows)


setSearchText(event)
const searchText = event.nativeEvent.text;

clubsLength = this.state.rows.length;
aClub= this.state.rows;

const filteredClubs = this.state.rows.filter(checkTitle);
console.log("clubs: " + JSON.stringify(filteredClubs));

function checkClub()
for(i=0;i<clubsLength;i++)
if(aClub[i].club === searchText)
console.log("found: " + aClub[i].club);
return aClub[i];




this.setState(
searchText,
dataSource: this.state.dataSource.cloneWithRows(filteredClubs),
);


renderRow = (rowData) =>
return (

<View style=styles.card>
<TouchableOpacity onPress=() => this.props.navigation.navigate('Details')>
<View style=styles.innerCard>
<Image
style=styles.imageCard
source=rowData.image
/>
<Text style=styles.innerText>
rowData.club
</Text>
</View>
<View style=styles.outerCard>
<Text style=styles.outerText>
rowData.genre
</Text>
<Text style = styles.outerTexts>
View
</Text>
</View>
</TouchableOpacity>
</View>
)



render()
return (

<ScrollView style=styles.container>
<View style=styles.SearchBarContainer>
<TextInput
placeholder="Search"
value=this.state.searchText
onChange=this.setSearchText.bind(this)
style=styles.searchBar
underlineColorAndroid="#DD016B"
selectionColor="#DD016B"
/>
</View>
<ListView
style=styles.listContainer
dataSource=this.state.dataSource
renderRow=this.renderRow
/>
</ScrollView>

)



const styles = StyleSheet.create(
container:
flex: 1,
backgroundColor: 'black',
width:'100%',
// height: 299,

,
SearchBarContainer:
justifyContent: 'center',
alignItems: 'center'
,
listContainer:
flex: 1,
backgroundColor: 'black',
width:'100%',
// height: 299,
,
button:
backgroundColor: 'transparent',
width: '50%',
,
textInput:
height: 30,
borderWidth: 1,
borderColor: '#DD016B',
marginBottom: 10,
marginHorizontal: 10,
,
searchBar:
textAlign: 'center',
height: 40,
width:200,
color: '#DD016B',
borderColor: '#DD016B',
// selectionColor: '#DD016B',
// borderWidth: 1,
// borderRadius: 5,
marginBottom:20,
marginTop: 20,
justifyContent: 'center',
,
card:
marginBottom: 15,
,
innerCard:
height:110,
,
imageCard:
width: 500,
height: 150,
paddingTop: 0,
paddingBottom: 0,
marginBottom:0,
marginTop: 0,
,
innerText:
color: 'white',
marginBottom: 0,
fontSize: 35,
position: 'absolute',
top: 100,
,
outerText:
color: '#DD016B',
marginBottom: 0,
marginTop: 50,
width: 100,
,
)

AppRegistry.registerComponent('App', () => App)

export default createStackNavigator(
Home:
screen: HomeScreen,
,
,
initialRouteName: 'Home',
);






reactjs react-native






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 12 '18 at 5:04









Cœur

18.1k9108148




18.1k9108148










asked Nov 11 '18 at 21:17









SalmanSalman

29219




29219












  • Your HomeScreen component doesn't have rows in its state.

    – Tholle
    Nov 11 '18 at 21:23











  • @Tholle Could you care to explain to me, or where I can find it explained how to do this?

    – Salman
    Nov 11 '18 at 22:13











  • You have your rows array as a variable outside of your component. If you want it in your state you can write e.g. state = dataSource: ds.cloneWithRows(rows), rows or reference rows instead of this.state.rows.

    – Tholle
    Nov 11 '18 at 22:16











  • @Tholle , that seemed to have helped. It seems the app searches but can't find the title, but i'll keep troubleshooting and looking trough the docs. You can post it as an answer so I can close this question. Thank you! :)

    – Salman
    Nov 12 '18 at 9:52

















  • Your HomeScreen component doesn't have rows in its state.

    – Tholle
    Nov 11 '18 at 21:23











  • @Tholle Could you care to explain to me, or where I can find it explained how to do this?

    – Salman
    Nov 11 '18 at 22:13











  • You have your rows array as a variable outside of your component. If you want it in your state you can write e.g. state = dataSource: ds.cloneWithRows(rows), rows or reference rows instead of this.state.rows.

    – Tholle
    Nov 11 '18 at 22:16











  • @Tholle , that seemed to have helped. It seems the app searches but can't find the title, but i'll keep troubleshooting and looking trough the docs. You can post it as an answer so I can close this question. Thank you! :)

    – Salman
    Nov 12 '18 at 9:52
















Your HomeScreen component doesn't have rows in its state.

– Tholle
Nov 11 '18 at 21:23





Your HomeScreen component doesn't have rows in its state.

– Tholle
Nov 11 '18 at 21:23













@Tholle Could you care to explain to me, or where I can find it explained how to do this?

– Salman
Nov 11 '18 at 22:13





@Tholle Could you care to explain to me, or where I can find it explained how to do this?

– Salman
Nov 11 '18 at 22:13













You have your rows array as a variable outside of your component. If you want it in your state you can write e.g. state = dataSource: ds.cloneWithRows(rows), rows or reference rows instead of this.state.rows.

– Tholle
Nov 11 '18 at 22:16





You have your rows array as a variable outside of your component. If you want it in your state you can write e.g. state = dataSource: ds.cloneWithRows(rows), rows or reference rows instead of this.state.rows.

– Tholle
Nov 11 '18 at 22:16













@Tholle , that seemed to have helped. It seems the app searches but can't find the title, but i'll keep troubleshooting and looking trough the docs. You can post it as an answer so I can close this question. Thank you! :)

– Salman
Nov 12 '18 at 9:52





@Tholle , that seemed to have helped. It seems the app searches but can't find the title, but i'll keep troubleshooting and looking trough the docs. You can post it as an answer so I can close this question. Thank you! :)

– Salman
Nov 12 '18 at 9:52












1 Answer
1






active

oldest

votes


















1















The reason why you get your error is because you are trying to read rows from your state, but rows is an array outside of your component.



You could either reference the rows array that is outside of your state, or put the array in state when you create it.



Example



export class HomeScreen extends Component 
static navigationOptions =
header: null
;

state =
dataSource: ds.cloneWithRows(rows),
rows
;

// ...






share|improve this answer

























  • Do you happen to know why I dont get any results when I search? Example : club air. I just get an empty screen.

    – Salman
    Nov 12 '18 at 9:54











  • @Salman I'm not quite sure. It might be worth creating a Minimal, Complete, and Verifiable example in e.g. CodeSandbox and create a new question with that.

    – Tholle
    Nov 12 '18 at 9:55






  • 1





    Thanks CodeSandbox seems very useful! I'll see if i can trouble shoot it

    – Salman
    Nov 12 '18 at 9:56










Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53253325%2fsearching-through-listview%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1















The reason why you get your error is because you are trying to read rows from your state, but rows is an array outside of your component.



You could either reference the rows array that is outside of your state, or put the array in state when you create it.



Example



export class HomeScreen extends Component 
static navigationOptions =
header: null
;

state =
dataSource: ds.cloneWithRows(rows),
rows
;

// ...






share|improve this answer

























  • Do you happen to know why I dont get any results when I search? Example : club air. I just get an empty screen.

    – Salman
    Nov 12 '18 at 9:54











  • @Salman I'm not quite sure. It might be worth creating a Minimal, Complete, and Verifiable example in e.g. CodeSandbox and create a new question with that.

    – Tholle
    Nov 12 '18 at 9:55






  • 1





    Thanks CodeSandbox seems very useful! I'll see if i can trouble shoot it

    – Salman
    Nov 12 '18 at 9:56















1















The reason why you get your error is because you are trying to read rows from your state, but rows is an array outside of your component.



You could either reference the rows array that is outside of your state, or put the array in state when you create it.



Example



export class HomeScreen extends Component 
static navigationOptions =
header: null
;

state =
dataSource: ds.cloneWithRows(rows),
rows
;

// ...






share|improve this answer

























  • Do you happen to know why I dont get any results when I search? Example : club air. I just get an empty screen.

    – Salman
    Nov 12 '18 at 9:54











  • @Salman I'm not quite sure. It might be worth creating a Minimal, Complete, and Verifiable example in e.g. CodeSandbox and create a new question with that.

    – Tholle
    Nov 12 '18 at 9:55






  • 1





    Thanks CodeSandbox seems very useful! I'll see if i can trouble shoot it

    – Salman
    Nov 12 '18 at 9:56













1












1








1








The reason why you get your error is because you are trying to read rows from your state, but rows is an array outside of your component.



You could either reference the rows array that is outside of your state, or put the array in state when you create it.



Example



export class HomeScreen extends Component 
static navigationOptions =
header: null
;

state =
dataSource: ds.cloneWithRows(rows),
rows
;

// ...






share|improve this answer
















The reason why you get your error is because you are trying to read rows from your state, but rows is an array outside of your component.



You could either reference the rows array that is outside of your state, or put the array in state when you create it.



Example



export class HomeScreen extends Component 
static navigationOptions =
header: null
;

state =
dataSource: ds.cloneWithRows(rows),
rows
;

// ...







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 12 '18 at 9:54

























answered Nov 12 '18 at 9:52









TholleTholle

34.6k53961




34.6k53961












  • Do you happen to know why I dont get any results when I search? Example : club air. I just get an empty screen.

    – Salman
    Nov 12 '18 at 9:54











  • @Salman I'm not quite sure. It might be worth creating a Minimal, Complete, and Verifiable example in e.g. CodeSandbox and create a new question with that.

    – Tholle
    Nov 12 '18 at 9:55






  • 1





    Thanks CodeSandbox seems very useful! I'll see if i can trouble shoot it

    – Salman
    Nov 12 '18 at 9:56

















  • Do you happen to know why I dont get any results when I search? Example : club air. I just get an empty screen.

    – Salman
    Nov 12 '18 at 9:54











  • @Salman I'm not quite sure. It might be worth creating a Minimal, Complete, and Verifiable example in e.g. CodeSandbox and create a new question with that.

    – Tholle
    Nov 12 '18 at 9:55






  • 1





    Thanks CodeSandbox seems very useful! I'll see if i can trouble shoot it

    – Salman
    Nov 12 '18 at 9:56
















Do you happen to know why I dont get any results when I search? Example : club air. I just get an empty screen.

– Salman
Nov 12 '18 at 9:54





Do you happen to know why I dont get any results when I search? Example : club air. I just get an empty screen.

– Salman
Nov 12 '18 at 9:54













@Salman I'm not quite sure. It might be worth creating a Minimal, Complete, and Verifiable example in e.g. CodeSandbox and create a new question with that.

– Tholle
Nov 12 '18 at 9:55





@Salman I'm not quite sure. It might be worth creating a Minimal, Complete, and Verifiable example in e.g. CodeSandbox and create a new question with that.

– Tholle
Nov 12 '18 at 9:55




1




1





Thanks CodeSandbox seems very useful! I'll see if i can trouble shoot it

– Salman
Nov 12 '18 at 9:56





Thanks CodeSandbox seems very useful! I'll see if i can trouble shoot it

– Salman
Nov 12 '18 at 9:56



















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53253325%2fsearching-through-listview%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

Edmonton

Crossroads (UK TV series)