我要做的是:
我正在尝试有一个页面,您可以在其中搜索特定项目,然后向API发送请求,该请求将根据此搜索返回一组值。
目前,我使用的是Listview,在用户输入搜索字词并点击确定后才会显示。一旦用户点击了搜索,就会使用回复更新列表视图。
发生了什么:
当用户点击搜索时,我收到以下错误:
Undefined不是对象(评估dataSource.rowIdentities)
以下是目前的代码:
class Search extends Component {
constructor(props) {
super(props);
this.state = {
term: '',
showResults: false,
isSearch: false,
SearchResults: ''
}
this.ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
this.state = {
SearchResults: this.ds.cloneWithRows(["Row 1", "Row 2"]),
};
}
onSearchButtonPress() {
this.setState({isSearch: true});
}
_renderCategoryIcon() {
}
_renderSearchResults(item) {
return (
<Text>Hello world</Text>
)
}
render() {
if(this.state.isSearch)
{
return (
<ViewContainer>
<StatusBarBackground style={{backgroundColor: "#009fe3"}} navigator={this.props.navigator} />
<SearchBar
placeholder='Search'
onChangeText={(text)=> this.setState({term: text})}
onSearchButtonPress={this.onSearchButtonPress.bind(this)}
/>
<ListView
style={styles.containerView}
enableEmptySections={true}
horizontal={false}
initialListSize={10}
dataSource={this.state.SeachResults}
automaticallyAdjustContentInsets={false}
renderRow={(item) => { return this._renderSearchResults(item) }} />
</ViewContainer>
);
}else{
return (
<ViewContainer>
<StatusBarBackground style={{backgroundColor: "#009fe3"}} navigator={this.props.navigator} />
<SearchBar
placeholder='Search'
onChangeText={(text)=> this.setState({term: text})}
onSearchButtonPress={this.onSearchButtonPress.bind(this)}
/>
</ViewContainer>
)
}
}
}
const styles = StyleSheet.create({
title: {
fontSize:30,
},
});
答案 0 :(得分:2)
您已将默认Int8
设置为空字符串。改为使用空数组:
SearchResults