|
|
'use strict';
|
|
|
|
|
|
import React, {Component} from 'react';
|
|
|
import Immutable, {Map} from 'immutable';
|
|
|
import DetailBrand from './DetailBrand';
|
|
|
import OtherArticle from './OtherArticle';
|
|
|
|
|
|
import ReactNative, {
|
|
|
View,
|
|
|
Text,
|
...
|
...
|
@@ -19,17 +23,69 @@ export default class Detail extends Component { |
|
|
|
|
|
constructor(props) {
|
|
|
super(props);
|
|
|
this.renderRow = this.renderRow.bind(this);
|
|
|
|
|
|
this.dataSource = new ListView.DataSource({
|
|
|
rowHasChanged: (r1, r2) => !Immutable.is(r1, r2),
|
|
|
sectionHeaderHasChanged: (s1, s2) => !Immutable.is(s1, s2),
|
|
|
});
|
|
|
}
|
|
|
|
|
|
shouldComponentUpdate(nextProps){
|
|
|
|
|
|
if (Immutable.is(nextProps.resource, this.props.resource)) {
|
|
|
return false;
|
|
|
} else {
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
renderRow(rowData,sectionID,rowID,highlightRow) {
|
|
|
|
|
|
if (sectionID == 'detailList') {
|
|
|
return (
|
|
|
<Text>aaaaaa</Text>
|
|
|
);
|
|
|
}else if (sectionID == 'detailBrand') {
|
|
|
return (
|
|
|
<DetailBrand resource={rowData}/>
|
|
|
);
|
|
|
}else if (sectionID == 'detailOtherArticle') {
|
|
|
return (
|
|
|
<OtherArticle resource={rowData}/>
|
|
|
);
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
render() {
|
|
|
|
|
|
let {resource} = this.props;
|
|
|
let {
|
|
|
articleId,
|
|
|
article,
|
|
|
author,
|
|
|
content,
|
|
|
brand,
|
|
|
otherArticle,
|
|
|
weixin,
|
|
|
} = resource;
|
|
|
let list = content?content.get('data'):[];
|
|
|
|
|
|
let dataSource = {
|
|
|
detailList: list.size?list.toArray():[],
|
|
|
detailBrand: [brand],
|
|
|
detailOtherArticle: [otherArticle],
|
|
|
};
|
|
|
|
|
|
return (
|
|
|
<View style={styles.container}>
|
|
|
<Text>aaaaaa</Text>
|
|
|
</View>
|
|
|
<ListView
|
|
|
contentContainerStyle={styles.contentContainer}
|
|
|
enableEmptySections={true}
|
|
|
showsVerticalScrollIndicator={false}
|
|
|
dataSource={this.dataSource.cloneWithRowsAndSections(dataSource)}
|
|
|
renderRow={this.renderRow}
|
|
|
/>
|
|
|
);
|
|
|
}
|
|
|
}
|
...
|
...
|
@@ -41,7 +97,7 @@ let styles = StyleSheet.create({ |
|
|
flex: 1,
|
|
|
backgroundColor: '#f0f0f0',
|
|
|
},
|
|
|
contentContainer: {
|
|
|
contentContainer:{
|
|
|
|
|
|
},
|
|
|
}); |
...
|
...
|
|