react-native(js):概括一个函数

时间:2016-03-28 17:32:13

标签: javascript react-native

我有两个函数,我想凝聚成一个(用另一个参数)。他们被这样称呼:

<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 ...我不确定如何以正确的方式实现它。

0 个答案:

没有答案