native react 图片多选_React Native(多选实现,2017-09-05)

20170906150468611759afb0250585a.gif

1.renderShowEditView里面的2个图片自己替换一下

2.复制代码直接就可以跑

import React, {PureComponent} from 'react'

import {View, Text, StyleSheet, ScrollView, TouchableOpacity, ListView, Image, Dimensions} from 'react-native'

const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});

let {width, height} = Dimensions.get('window');

export default class CircleList extends PureComponent {

constructor(props) {

super(props);

this.state = {

isEdict: false,//是否编辑状态

selectArray: [],

dataSource: [{id: '1', title: '文章1'}, {id: '2', title: '文章2'}, {id: '3', title: '文章3'},],

}

}

componentDidMount() {

let array = this.state.dataSource;

let newArray = []

//服务器返回的数据,自己增加一个状态,控制是否选中

for (let i = 0; i < array.length; i++) {

let dict = array[i]

dict.isSelect = false;

newArray.push(dict);

}

this.setState({

dataSource: newArray

});

}

render() {

return (

{'点我进入编辑/非编辑状态'}

renderRow={this.renderRow}

dataSource={ds.cloneWithRows(this.state.dataSource)}/>

{JSON.stringify(this.state.selectArray)}

);

}

renderRow = (rowData, sectionID, rowID, highlightRow) => {

return (

{this.renderShowEditView(this.state.isEdict, rowData, rowID, ()=> {

this.rightOnPress(rowData, rowID)

})}

{rowData.title}

)

}

//是否进去编辑状态

onEditOnPress = ()=> {

this.setState({isEdict: !this.state.isEdict});

}

//左边按钮选择

rightOnPress = (rowData, index)=> {

let selectArray = this.state.selectArray;

let data = this.state.dataSource;

let newArray = []

for (let i = 0; i < data.length; i++) {

let dict = data[i];

if (index == i) {

if (dict.isSelect == true) {

dict.isSelect = false

for (let j = 0; j < selectArray.length; j++) {

let id = selectArray[j];

if (id == dict.id) {

selectArray.splice(j, 1);

}

}

} else {

dict.isSelect = true

selectArray.push(dict.id);

}

}

newArray.push(dict);

}

this.setState({

selectArray: selectArray,

dataSource: newArray

});

}

//是否选中

renderShowEditView(isEdict, rowData, index, onPress) {

if (isEdict == true) {

let imageURL = require('../../res/img/circle/没选中.png')

if (rowData.isSelect == true) {

imageURL = require('../../res/img/circle/选中.png')

}

return (

{

onPress(rowData, index)

}} style={{height: 111, width: 40, justifyContent: 'center', alignItems: 'center'}}>

)

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值