我有两个函数,我想凝聚成一个(用另一个参数)。他们被这样称呼:
<ListView
automaticallyAdjustContentInsets={false}
dataSource={this.state.dataSource_proj}
renderRow={this.renderProjRow.bind(this)}/>
<ListView
automaticallyAdjustContentInsets={false}
dataSource={this.state.dataSource_map}
renderRow={this.renderMapRow.bind(this)}/>
功能是:
renderProjRow(rowData, sectionID, rowID) {
return (
<TouchableHighlight onPress={() => this.rowProjPressed(rowData.project_name)}
underlayColor='#dddddd'>
<View>
<View style={styles.rowContainer}>
<Image source={{uri: 'Letter-' + rowData.project_name.substr(0,1).toUpperCase()}}
style={styles.thumb}/>
<View style={styles.textContainer}>
<Text style={styles.title}
numberOfLines={1}>{rowData.project_name}</Text>
</View>
</View>
<View Style={styles.separator}/>
</View>
</TouchableHighlight>
);
}
renderMapRow(rowData, sectionID, rowID) {
return (
<TouchableHighlight onPress={() => this.rowMapPressed(rowData)}
underlayColor='#dddddd'>
<View>
<View style={styles.rowContainer}>
<Image source={{uri: 'Letter-' + rowData.map_name.substr(0,1).toUpperCase()}}
style={styles.thumb}/>
<View style={styles.textContainer}>
<Text style={styles.title}
numberOfLines={1}>{rowData.map_name}</Text>
</View>
</View>
<View Style={styles.separator}/>
</View>
</TouchableHighlight>
);
}
我想只有一个函数:renderRow
,如果数据源为rowData.project_name
,则dataSource_proj
;如果数据源为{{{},则rowData.map_name
1}}。
然而,除了使用eval ...我不确定如何以正确的方式实现它。