react-native 實(shí)現(xiàn)購物車滑動(dòng)刪除效果的示例代碼
購物車的功能基本上電商項(xiàng)目都會(huì)有的,這是一篇關(guān)于react-native的,原生android的已經(jīng)好久沒寫了。記得以前寫原生購物車的時(shí)候,遇到過產(chǎn)品的靈魂質(zhì)問,為啥iOS的滑動(dòng)刪除可以,android卻那么難實(shí)現(xiàn)的。這個(gè)時(shí)候,我就打開微信說,android的微信版也是長按進(jìn)行操作,iOS的是滑動(dòng)操作的,兩個(gè)平臺(tái)自帶的系統(tǒng)交互操作是不一樣的。當(dāng)然,最后還是默默的找各種三方庫去進(jìn)行滑動(dòng)刪除。
rn的項(xiàng)目也是找的網(wǎng)上的一個(gè)三方庫進(jìn)行列表滑動(dòng)操作的,github地址react-native-swipe-list-view
最基本的使用方法和flatList差不多,data 屬性數(shù)組數(shù)據(jù)源,renderItem 從data中挨個(gè)取出數(shù)據(jù)并渲染到列表中
<SwipeListView
data={this.state.listViewData}
renderItem={this.renderItem}
keyExtractor={this.keyExtractor}
/>
這時(shí)候是不可以左右滑動(dòng)的,就跟普通的flatList效果一樣。加上renderHiddenItem屬性,可以左右滑動(dòng)。renderHiddenItem渲染的就是隱藏的內(nèi)容,隱藏的內(nèi)容位置是通過flex布局來控制,下面這個(gè)例子使用橫向布局,通過space-between將內(nèi)容控制在左右兩邊,形成了左右滑動(dòng)時(shí)出現(xiàn)隱藏內(nèi)容。
//這是左右都可以滑動(dòng)的
renderHiddenItem = (data, rowMap) => {
return <View style={{
flex: 1,
flexDirection: 'row',
justifyContent: 'space-between'
}}>
<Text>Left</Text>
<Text>Right</Text>
</View>
}
我們這邊只需要可以左滑,通過justifyContent: 'flex-end'屬性將刪除按鈕內(nèi)容置于最右邊,同時(shí)設(shè)置SwipeListView的屬性disableRightSwipe來禁止右滑操作。
renderHiddenItem = (data, rowMap) => {
return <View style={{
flex: 1,
flexDirection: 'row',
justifyContent: 'flex-end',
}}>
<TouchableOpacity style={{
backgroundColor: '#FF496C',
width: 80,
justifyContent: 'center',
alignItems: 'center'
}}>
<Text style={{color:'#fff'}}>刪除</Text>
</TouchableOpacity>
</View>
}
這個(gè)時(shí)候向左滑,可以看到右邊的刪除按鈕出來了,但是沒有一直處于打開狀態(tài),還需要添加rightOpenValue={-80}屬性,使其處于打開狀態(tài)。
<SwipeListView
disableRightSwipe
data={this.state.listViewData}
renderItem={this.renderItem}
keyExtractor={this.keyExtractor}
renderHiddenItem={this.renderHiddenItem}
rightOpenValue={-80}
/>
另外有一個(gè)需要注意的是,renderItem進(jìn)行列表渲染時(shí),最外層的視圖,官方推薦使用可點(diǎn)擊響應(yīng)觸摸的,而不是<View/>,正常情況是,打開了一個(gè)視圖,點(diǎn)其他視圖,默認(rèn)會(huì)關(guān)閉打開的那一項(xiàng),如果最外層是<View/>則不會(huì)有這種效果。
//最外層是 TouchableHighlight
renderItem = ({item, index}, rowMap) => {
return <TouchableHighlight
onPress={() => {
}}
underlayColor={'#fff'}>
...
</TouchableHighlight>
}
至此,滑動(dòng)刪除的效果已經(jīng)基本滿足了,后續(xù)就是業(yè)務(wù)邏輯,增刪操作數(shù)據(jù)源刷新頁面了。

到此這篇關(guān)于react-native 實(shí)現(xiàn)購物車滑動(dòng)刪除效果的示例代碼的文章就介紹到這了,更多相關(guān)react-native 滑動(dòng)刪除內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React?中使用?RxJS?優(yōu)化數(shù)據(jù)流的處理方案
這篇文章主要為大家介紹了React?中使用?RxJS?優(yōu)化數(shù)據(jù)流的處理方案示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
基于react框架使用的一些細(xì)節(jié)要點(diǎn)的思考
下面小編就為大家?guī)硪黄趓eact框架使用的一些細(xì)節(jié)要點(diǎn)的思考。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05
react 項(xiàng)目 中使用 Dllplugin 打包優(yōu)化技巧
在用 Webpack 打包的時(shí)候,對于一些不經(jīng)常更新的第三方庫,比如 react,lodash,vue 我們希望能和自己的代碼分離開,這篇文章主要介紹了react 項(xiàng)目 中 使用 Dllplugin 打包優(yōu)化,需要的朋友可以參考下2023-01-01
npx create-react-app xxx創(chuàng)建項(xiàng)目報(bào)錯(cuò)的解決辦法
這篇文章主要介紹了npx create-react-app xxx創(chuàng)建項(xiàng)目報(bào)錯(cuò)的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
React組件中使用JSON數(shù)據(jù)文件的方法詳解
要在 React 組件中使用 JSON 數(shù)據(jù),有多種方法,這篇文章主要為大家詳細(xì)介紹了五個(gè)常見的方法,文中的示例代碼講解詳細(xì),有需要的小伙伴可以了解下2024-01-01

