反应本机ListView不显示数据
我有一系列的词汇叫做partners。每个字典都有一个标题键和其他键。我希望用每个词典的标题填充ListView 在我的ListView构造函数中,我有以下行反应本机ListView不显示数据,listview,dictionary,react-native,Listview,Dictionary,React Native,我有一系列的词汇叫做partners。每个字典都有一个标题键和其他键。我希望用每个词典的标题填充ListView 在我的ListView构造函数中,我有以下行 this.ds= new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}) this.state = { dataSource: this.ds.cloneWithRows(this._partners()), } 然后我的_partners函数如下
this.ds= new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2})
this.state = {
dataSource: this.ds.cloneWithRows(this._partners()),
}
然后我的_partners函数如下所示
_partners(){
var dataBlob = []
for (var ii = 0; ii < partners.length; ii++) {
dataBlob.push(partners[ii].title);
}
return dataBlob;
}
\u合作伙伴(){
var-dataBlob=[]
对于(var ii=0;ii
ListView中没有显示任何内容
但是如果我将_partners代码更改为
_partners(){
var dataBlob = []
for (var ii = 0; ii < partners.length; ii++) {
dataBlob.push(partners[ii]);
}
return dataBlob;
}
\u合作伙伴(){
var-dataBlob=[]
对于(var ii=0;ii
然后ListView工作并由整个字典填充 我认为问题可能在于您对ds.cloneWithRows赋值的定义。我将它从构造函数中移出,使其成为React类定义之上的一个变量,并且工作正常。下面是一个示例项目,代码如下
“严格使用”;
var React=require('React-native');
变量{
评估学,
样式表,
文本,
看法
ListView,
可触摸高光
}=反应;
var ds=新的ListView.DataSource({rowHasChanged:(r1,r2)=>r1!==r2})
var partners=[{title:'总裁',name:'克里斯'},{title:'经理',name:'梅丽莎'},{title:'首席执行官',name:'阿曼达'}]
类SampleApp扩展了React.Component{
建造师(道具){
超级(道具)
此.state={
数据源:ds.cloneWithRows(this.\u partners()),
}
}
_合伙人(){
var-dataBlob=[]
对于(var ii=0;iiSampleApp);
不幸的是,我的xcode似乎不工作,它一直给我相同的错误(即使在新项目上)无法连接到开发服务器,请检查节点是否正在运行。所以我无法核实你的答案。
'use strict';
var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
View,
ListView,
TouchableHighlight
} = React;
var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2})
var partners = [{title: 'President', name: 'chris'}, {title: 'Manager', name: 'Melissa'}, {title: 'CEO', name: 'Amanda'}]
class SampleApp extends React.Component {
constructor(props){
super(props)
this.state = {
dataSource: ds.cloneWithRows(this._partners()),
}
}
_partners(){
var dataBlob = []
for (var ii = 0; ii < partners.length; ii++) {
dataBlob.push(partners[ii].title);
}
return dataBlob;
}
_renderRow(rowData) {
return <TouchableHighlight underlayColor="ededed" style={{ height:60, backgroundColor: '#efefef', borderBottomWidth:1, borderBottomColor: '#ddd', flexDirection:'row', justifyContent: 'center', alignItems: 'center' }}>
<Text style={{ fontSize:18 }}>{rowData}</Text>
</TouchableHighlight>
}
render() {
console.log('Partners: ', this._partners() )
return (
<View style={styles.container}>
<ListView
dataSource={this.state.dataSource}
renderRow={ this._renderRow } />
</View>
);
}
}
var styles = StyleSheet.create({
container: {
flex: 1,
marginTop:60
},
});
AppRegistry.registerComponent('SampleApp', () => SampleApp);