ScrollView
ScrollView 加载更多的 ScrollView
一般配合 BfScrollView.useListHook
使用
代码示例
import { BfScrollView, BfTabs } from '@bud-fe/react-taro-ui';import { View } from '@tarojs/components';import React, { useEffect, useState } from 'react';export default () => {const [queryProps, setQueryProps] = useState<Record<string, any>>({pageNo: 1,pageSize: 10,});const { reLoadDataWithProps, ...scrollViewProps } = BfScrollView.useListHook({loadData,queryProps,});useEffect(() => {reLoadDataWithProps(queryProps);}, [queryProps]);async function loadData(params) {console.log('loadData ---> ', params);setTimeout(() => null, 2000);return { code: 200, data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] };}return (<><BfScrollView{...scrollViewProps}renderListItem={(item, index) => (<View style={{ padding: '20px', borderTop: '1px solid #333' }}>{`${item}-${index}`}</View>)}header={<BfTabscurrent={1}tabs={[{ label: 'aaa', value: 1 },{ label: 'bbb', value: 2 },{ label: 'ccc', value: 3 },]}/>}footer={<View>我是尾部</View>}/></>);};
API
BfScrollView
属性名 | 描述 | 类型 | 默认值 |
---|---|---|---|
renderListItem | 每个Item项的渲染逻辑 | (data: any, index: any) => any | (必选) |
customEmptyView | 搜索结果为空时展示 | any | <BfEmptyView /> |
defaultView | 未执行搜索时默认展示 | any | -- |
dataList | 列表数据 | any[] | (必选) |
_loadData | 滚动到底部/右边,会发起请求 | (params: any) => Promise<any> | (必选) |
reloadWithError | 加载失败时,点击的回调 | () => void | (必选) |
header | 头部 | any | -- |
footer | 尾部 | any | -- |
scrollViewClass | 传给scroll-view类名 | string | '' |
scrollViewProps | ScrollViewProps {@link ScrollViewProps} | ScrollViewProps | -- |
loading | 是否显示加载中 | boolean | false |
isFinished | 是否显示加载完成 | boolean | false |
error | 是否显示加载失败 | boolean | false |
useListHook
属性名 | 描述 | 类型 | 默认值 |
---|---|---|---|
loadData | 加载数据 | (params: any) => Promise<any> | (必选) |
queryProps | 请求的参数 | Record<string, any> | -- |
autoLoad | 挂载时是否自动加载 | boolean | false |
pageNoProps | pageNo 的字段名 | string | pageNo |
pageSizeProps | pageSize 的字段名 | string | pageSize |
disablePaging | 禁用分页加载 | boolean | false |
successGroups | 加载成功的 code 集合 | number[] | [200, 200000] |