平时使用SwipeRow的时候,大家肯定碰到这种情况:就是当我左滑或者右滑一行时,去关闭掉其他行已经左滑或者右滑的行。但是Swiperow自身没有方法实现此情景,下面就是如何使用Swiperow自定义此功能。
//构造器
constructor(props) {
super(props);
props.loadMore = false;
this.state = {
refs: [],
}
<SwipeRow
key={ref}
leftOpenValue={75}
rightOpenValue={-ScreenUtil.scaleSize(110)}
disableLeftSwipe={this.props.invoice.canDelete}
disableRightSwipe={true}
closeOnRowPress={true}
onRowOpen={
()=> {
const {refs} = this.state;
for (let i = 0; i < refs.length; i++) {
let currentRow = 'row_' + invoiceItem.uuid;
if (refs[i] != currentRow) {
this[refs[i]].closeRow();
}
}
}
}
ref={(swipeRow) => {
this[ref] = swipeRow;
if (swipeRow) {
setTimeout(
() => {
swipeRow.closeRow();
}
, 100);
}
}}
>