import {
AppRegistry,
StyleSheet,
Text,
View,
Content,
TouchableOpacity,
ListView,
TextInput
} from 'react-native';
var page=0;
class rn25 extends Component{
constructor(props){
super(props);
this.Arr = [
{
name: '商品一',
num:page,
},
{
name: '商品二',
num:page,
},
{
name: '商品三',
num:page,
}
];
this.state={
ds: new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}).cloneWithRows(this.Arr),
list: this.Arr
};
}
render(){
return (
<View style={styles.container}>
<ListView
style={styles.left}
dataSource={this.state.ds}
renderRow={this.renderMover.bind(this)}
>
</ListView>
</View>
);
}
//具体的绘制
renderMover(rowData: Object ,sectionID: number,rowID: number){
return(
<TouchableOpacity style={styles.container} activeOpacity={0.3}>
<View style={styles.left}>
<Text>{rowData.name}</Text>
</View>
<View style={styles.right}>
<TouchableOpacity onPress={this.addNum.bind(this,rowData,sectionID,rowID)}>
<Text> + </Text>
</TouchableOpacity>
<View>
<Text>{rowData.num}</Text>
</View>
<TouchableOpacity onPress={this.subNum.bind(this,rowData,sectionID,rowID)}>
<Text> - </Text>
</TouchableOpacity>
</View>
</TouchableOpacity>
)
}
addNum(rowData,sectionID,rowID){
let newArr = [...this.state.list];
let newObj = {...newArr[rowID]}
newObj.num = newObj.num + 1;
newArr[rowID] = newObj
this.setState({
ds: new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}).cloneWithRows(newArr),
list: newArr
});
console.log(this.state.ds);
}
subNum(rowData,sectionID,rowID){
if (rowData.num==0) {
alert('2');
}else{
let newArr = [...this.state.list];
let newObj = {...newArr[rowID]}
newObj.num = newObj.num - 1;
newArr[rowID] = newObj
this.setState({
ds: new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}).cloneWithRows(newArr),
list: newArr
});
console.log(this.state.ds);
}
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
flexDirection:'row',
justifyContent:'space-between',
marginTop:30
},
left:{
marginLeft:10
},
right:{
flexDirection:'row'
}
});
AppRegistry.registerComponent('rn25', () => rn25);
React Native ListView实现购物车功能
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前言 知道mobx这个东西 很久了 大概也就1个多月了吧但是从来没有下笔写过代码这两天尝试了一下 大概去熟悉了一下...
- (一) :知识点准备: (1) reduce函数:性能比for和while好 http://www.w3cplus...
- 项目中React Native ListView的长按删除功能分享(基于ES5): 补充1:JS的删除方法除了de...
- 本项目来自菜鸟窝,有兴趣者点击http://www.cniao5.com/course/ 项目已经做完,https...