import React, { useState, useEffect } from "react"
import { ListView } from "antd-mobile"
const data = [
{
img: "https://zos.alipayobjects.com/rmsportal/dKbkpPXKfvZzWCM.png",
title: "Meet hotel",
des: "不是所有的兼职汪都需要风吹日晒",
header: "不是所有的兼职汪都需要风吹日晒",
},
{
img: "https://zos.alipayobjects.com/rmsportal/dKbkpPXKfvZzWCM.png",
title: "Meet hotel",
des: "不是所有的兼职汪都需要风吹日晒",
},
{
img: "https://zos.alipayobjects.com/rmsportal/dKbkpPXKfvZzWCM.png",
title: "Meet hotel",
des: "不是所有的兼职汪都需要风吹日晒",
},
{
img: "https://zos.alipayobjects.com/rmsportal/dKbkpPXKfvZzWCM.png",
title: "Meet hotel",
des: "不是所有的兼职汪都需要风吹日晒",
},
{
img: "https://zos.alipayobjects.com/rmsportal/dKbkpPXKfvZzWCM.png",
title: "Meet hotel",
des: "不是所有的兼职汪都需要风吹日晒",
},
{
img: "https://zos.alipayobjects.com/rmsportal/dKbkpPXKfvZzWCM.png",
title: "Meet hotel",
des: "不是所有的兼职汪都需要风吹日晒",
},
{
img: "https://zos.alipayobjects.com/rmsportal/dKbkpPXKfvZzWCM.png",
title: "Meet hotel",
des: "不是所有的兼职汪都需要风吹日晒",
},
{
img: "https://zos.alipayobjects.com/rmsportal/dKbkpPXKfvZzWCM.png",
title: "Meet hotel",
des: "不是所有的兼职汪都需要风吹日晒",
},
{
img: "https://zos.alipayobjects.com/rmsportal/dKbkpPXKfvZzWCM.png",
title: "Meet hotel",
des: "不是所有的兼职汪都需要风吹日晒",
},
{
img: "https://zos.alipayobjects.com/rmsportal/XmwCzSeJiqpkuMB.png",
title: "McDonald's invites you",
des: "不是所有的兼职汪都需要风吹日晒",
},
{
img: "https://zos.alipayobjects.com/rmsportal/hfVtzEhPzTUewPm.png",
title: "Eat the week",
des: "不是所有的兼职汪都需要风吹日晒",
},
]
export default function Home() {
const [loading, setLoading] = useState(true)
const ds = new ListView.DataSource({
rowHasChanged: () => true,
})
const [dataSource, setDataSource] = useState(ds)
useEffect(() => {
setDataSource(dataSource.cloneWithRows([...data]))
}, [])
function onRequestMore() {
let newDate = [...data, ...data]
setDataSource(dataSource.cloneWithRows([...data, ...data]))
}
function renderItem(rowData, sectionID, rowID) {
return (
<div key={rowID} style={{ padding: "0 15px" }}>
 
<div
style={{
lineHeight: "50px",
color: "#888",
fontSize: 18,
borderBottom: "1px solid #F6F6F6",
}}
>
{rowData.title}
</div>
 
<div
style={{ display: "-webkit-box", display: "flex", padding: "15px 0" }}
>
<img
style={{ height: "64px", marginRight: "15px" }}
src={rowData.img}
alt=""
/>
<div style={{ lineHeight: 1 }}>
<div style={{ marginBottom: "8px", fontWeight: "bold" }}>
{rowData.des}
</div>
<div>
<span style={{ fontSize: "30px", color: "#FF6E27" }}>35</span>¥{" "}
{rowID}
</div>
</div>
</div>
</div>
)
}
return (
<ListView
loading={false}
dataSource={dataSource}
renderRow={renderItem}
initialListSize={20}
pageSize={20}
onEndReached={event => {
onRequestMore()
}}
onEndReachedThreshold={10}
style={{
height: "100%",
}}
/>
)
}
 
无吸顶功能

使用在react hooks+antd ListView简单实现移动端长列表功能的更多相关文章

  1. React Native - 4 ListView 简单使用

    1. 首先要import ListView组件 2. 使用如下代码,注意ListView里的dataSource大小写,我当时把S给小写了,结果花了半个多小时找原因…… 3. 运行结果

  2. react新特性 react hooks

    本文介绍的是react新特性react hooks,本文面向的是有一定react开发经验的小伙伴,如果你对react还不是很熟悉的话我建议你先学习react并多多联系. 首先我们都知道react有3种 ...

  3. React Hooks简单业务场景实战(非源码解读)

    前言 React Hooks 是React 16.7.0-alpha 版本推出的新特性.从 16.8.0 开始,React更稳定的支持了这一新特性. 它可以让你在不编写 class 的情况下使用 st ...

  4. 基于react hooks,zarm组件库配置开发h5表单页面

    最近使用React Hooks结合zarm组件库,基于js对象配置方式开发了大量的h5表单页面.大家都知道h5表单功能无非就是表单数据的收集,验证,提交,回显编辑,通常排列方式也是自上向下一行一列的方 ...

  5. react hooks 如何自定义组件(react函数组件的封装)

    前言 这里写一下如何封装可复用组件.首先技术栈 react hooks + props-type + jsx封装纯函数组件.类组件和typeScript在这不做讨论,大家别白跑一趟. 接下来会说一下封 ...

  6. React Native之ListView使用

    前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...

  7. React Native之ListView实现九宫格效果

    概述 在安卓原生开发中,ListView是很常用的一个列表控件,那么React Native(RN)如何实现该功能呢?我们来看一下ListView的源码 ListView是基于ScrollView扩展 ...

  8. 通过 React Hooks 声明式地使用 setInterval

    本文由云+社区发表 作者:Dan Abramov 接触 React Hooks 一定时间的你,也许会碰到一个神奇的问题: setInterval 用起来没你想的简单. Ryan Florence 在他 ...

  9. 关于React Hooks,你不得不知的事

    React Hooks是React 16.8发布以来最吸引人的特性之一.在开始介绍React Hooks之前,让咱们先来理解一下什么是hooks.wikipedia是这样给hook下定义的: In c ...

随机推荐

  1. MySQL快速回顾:数据库和表操作

    前提要述:参考书籍<MySQL必知必会> 利用空闲时间快速回顾一些数据库基础. 4.1 连接 在最初安装MySQL,可能会要求你输入一个管理登录(通常为root)和一个口令(密码). 连接 ...

  2. qt creator源码全方面分析(2-9)

    目录 Semantic Highlighting 通用高亮 高亮和折叠块 Semantic Highlighting Qt Creator将C++,QML和JavaScript语言理解为代码,而不是纯 ...

  3. 原创: idea 的maven 方式配置 开发javaWeb(idea+tomcat +maven

    通过idea 编辑器来配置基于maven创建站点,在tomcat上配置 在采用idea 配置之前,首先要确保maven和 tomcat 正确运行. maven 配置链接 tomcat 配置链接 实际你 ...

  4. P5840 [COCI2015]Divljak

    // powered by c++11 // by Isaunoya #include <bits/stdc++.h> #define rep(i, x, y) for (register ...

  5. STL中的Set和Map——入门新手篇

    STL中的Set和Map 先来看一段网络上的文字描述: 上图是一段关于STL中Set集合的描述,同样的,也近似适合Map的描述.上述文字中,描述了最为重要的特征: Set和Map,底层调用了红黑树的结 ...

  6. Java学习随笔---常用API(二)

    Object类的toString方法 将一个对象返回为字符串形式,但一般使用的时候会覆盖重写toString方法 Object类是所有类的父亲 // public class Person { pri ...

  7. TC SRM556 OldBridges

    题意 有一个包含\(n\)个点的图,点的编号分别为\(0\)到\(n-1\).有若干双向边连接两个点,有些边可以经过无限次,有些边最多只能经过(双向)两次.Alice计划从\(a1\)到\(a2\)进 ...

  8. Chrome 插件 postman 可以在线post

    地址:https://chrome.google.com/webstore/detail/fhbjgbiflinjbdggehcddcbncdddomop

  9. linux 文件系统管理三部曲之三:挂载文件系统

    linux 文件系统管理三部曲之一:磁盘分区 linux 文件系统管理三部曲之二:创建文件系统 上面说明了,硬盘的划分和格式化,那么怎么使用,还没说,这里说一下,怎么使用创建好的文件系统. 使用文件系 ...

  10. 图片选择并使用base64展示

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...