taro更新页面数据_taroRefresh
import Taro from '@tarojs/taro';
import { connect } from '@tarojs/redux'
function withLoadList(opts = {}) {
return function demoComponent(Component) {
// redux里面的用户数据
// @connect(({ memberToken }) => ({
// memberToken
// }), (dispatch) => ({
// }))
class Hoc extends Component {
constructor(props) {
super(props);
this.state = {
resData: [],
scrollTop: 50,
nextText: false,
preText: false
};
this.downLoad = false;
this.type = 0;
this.prePage = 0;
this.preTotal = 1;
this.nextPage = 0;
this.nextTotal = 1;
this.pageSize = 20;
this.isOneLoad = true;
this._setData = this._setData.bind(this)
this.setOneLoad = this.setOneLoad.bind(this)
this.setType = this.setType.bind(this)
this.computePage = this.computePage.bind(this)
this.setPrePage = this.setPrePage.bind(this)
this.setNextPage = this.setNextPage.bind(this)
this.handleData = this.handleData.bind(this)
this._onScrollToUpper = this._onScrollToUpper.bind(this)
this._onScrollToLower = this._onScrollToLower.bind(this)
this.setScrollTop = this.setScrollTop.bind(this)
}
setOneLoad(b) {
this.isOneLoad = b
}
setType(type = 0) {
this.type = type;
}
computePage(total) {
return Math.ceil(total / this.pageSize)
}
setPrePage() {
let bool = this.computePage(this.preTotal) > this.prePage
this.prePage = this.prePage + 1;
console.log(this.computePage(this.preTotal), this.prePage);
return bool
}
setNextPage() {
this.nextPage += 1;
let bool = this.computePage(this.nextTotal) > this.nextPage
return bool
}
handleData() {
switch (this.type) {
case 0:
return {
pageNum: this.nextPage,
pageSize: this.pageSize,
type: 0
}
break;
case 1:
return {
pageNum: this.prePage,
pageSize: this.pageSize,
type: 1
}
break;
}
}
_onScrollToUpper() {
if (!this.downLoad) {
this.nextPage = 0;
this.nextTotal = 1;
this._onScrollToLower()
return false;
}
this.setType(1)
if (this.setPrePage()) {
this.requestRefresh()
} else {
console.log('没有了---');
this.setState({
preText: true
})
}
}
_onScrollToLower() {
this.setType(0)
if (this.setNextPage()) {
this.requestRefresh()
} else {
console.log('没有了');
this.setState({
nextText: true
})
}
}
_setData(data) {
console.log(this.state, '_setData');
let { resData } = this.state
switch (this.type) {
case 0:
return [...resData, ...data]
case 1:
this.setScrollTop(data)
return [...data, ...resData]
}
}
setScrollTop(data) {
let { prePage } = this
console.log(this);
this.setState({
scrollTop: 50 + this.prePage
})
}
async componentDidShow() {
// this.props.getList({
// pageNum: 1,
// pageSize: 20,
// type: 0
// }, (data) => {
// this.handleList(data.rows)
// })
console.log(this, 'aaaa', 'aaaathis.requestRefresh()');
this.requestRefresh()
if (super.componentDidShow) {
console.log(this.props, 'bbb');
super.componentDidShow();
}
}
requestRefresh() {
console.log(this.extensionData, this.downLoad, '====??????');
// console.log(this.props.onGetDataFun(this.handleData()), 'this.props.onGetDataFun(this.handleData())');
this.props.getList && this.props.getList({ ...this.handleData(), ...this.extensionData }).then(resData => {
console.log(resData, '===>');
console.log('<<<<<===>');
if (this.type === 0) {
this.nextTotal = resData.total
if (this.nextTotal <= 9 && this.isOneLoad && this.downLoad) {
this._onScrollToUpper()
}
} else {
this.preTotal = resData.total
}
this.setOneLoad(false)
// console.log(this._setData(resData.rows), this, 'hhhhhh');
console.log(this, this.setState(), '_setData');
let data = this._setData(resData.rows)
this.setState({
resData: data
})
})
}
render() {
return super.render();
}
}
return Hoc;
};
}
export default withLoadList;
taro更新页面数据_taroRefresh相关推荐
- taro更新页面数据_Taro 全局数据状态管理
我们一说到全局数据状态管理时,对于 Vue 框架,或许你想到的是 Vuex:对于 React 框架,或者你想到的是 Redux:在微信小程序中,globalData 内定义全局使用变量:而在 Taro ...
- taro更新页面数据_Reconciler
Taro 的运行时包括 DOM.BOM.React 兼容层.Vue 兼容层等内容,而不同的端平台或开发框架都有可能需要对 Taro 运行时进行侵入定制. 为了解耦,我们参考了 React Reconc ...
- taro更新页面数据_Taro 版本升级权威指南
Taro 是一款由京东凹凸实验室推出的开放式跨端跨框架解决方案,致力于解决小程序.H5.React Native 的跨端同构问题,支持同时使用 React 和 Vue 来进行开发.本文由 Taro 团 ...
- 解决更新页面数据回显时时间不匹配问题:The specified value “Fri Nov 05 08:00:00 CST 2021“ does not conform to the requir
解决更新页面数据回显时时间不匹配问题 我们输入时间数据回显,但是页面时间并没有显示 时间没有回显效果图 客户端控制台提示信息: The specified value "Fri Nov 05 ...
- ie浏览器缓存不能更新页面数据
其他浏览器好使,ie浏览器不清缓存不能更新页面数据,采用下面的方法清除缓存 需要在Java过滤器里面添加如下字段 response.setDateHeader("Expires", ...
- 怎么用vue自动更新页面数据
<body><div id="app"><div>欢迎:{{name}}</div><!-- {{}}就是插值语法相当于模板字 ...
- Java实现动态加载页面_[Java教程]动态加载页面数据的小工具 javascript + jQuery (持续更新)...
[Java教程]动态加载页面数据的小工具 javascript + jQuery (持续更新) 0 2014-05-07 18:00:06 使用该控件,可以根据url,参数,加载html记录模板(包含 ...
- 直接修改html文本页面没变化,VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析...
本文实例讲述了VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法.分享给大家供大家参考,具体如下: 业务场景 我们在使用vue 编写 代码时,我们有一个 多行文本框控件,希望在页面 ...
- php 微信实时更新,微信小程序修改data使页面数据实时更新的代码示例
本篇文章给大家带来的内容是关于微信小程序修改data使页面数据实时更新的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 需求:通过点击button修改dataList中che ...
- Vue的数据更新了但页面没有更新及数据频繁更新而页面只更新一次
1.Vue的数据更新了,而页面没有更新 由于Vue的数据双向绑定,我们只需要修改数据,页面就会自动更新.但有时我们修改了数据,页面却也没有更新,这是为什么? 以下用Vue2为例,整理常见的几种问题 1 ...
最新文章
- linux C函数之access函数的用法
- Google工程师带你学算法
- ubuntu下eclipse的svn插件使用javahl
- jboss学习 - vfs---转载
- Sharepoint 自定义字段类型
- 设计模式之_Strategy_04
- mysql 替代like_mysql用instr替代like查询
- Android 数据存储之文件存储小记
- Windows 8实用窍门系列:9.Windows 8中使用FlipView
- 家庭的和谐稳定由什么决定?
- java读取ifc文件_IFC文件解析
- mysql oracle minus_Oracle Minus关键字
- Flutter中的依赖注入——get_it
- 在学习计算机编程不写代码_使用代码创建:通过制作游戏来学习和教授计算机编程
- Python邮件发送SMATP模块详细总结(含qq邮箱及163邮箱服务开启及授权码获取,多附件发送)
- 从大数据看技术,为什么天猫双11是史上最大数字经济节日
- 2022-2028全球与中国角膜矫正术市场现状及未来发展趋势
- Linux下运行c++程序
- 浮点尾数特性详解(02325计算机系统结构)
- elementplus中表格组件使用固定列时出现滚动条粘性布局固定表头
热门文章
- presscad排样lisp_PRESSCAD统赢使用技巧(二)
- imagej得到灰度图数据_北大博士教你如何从图像中获得可用的灰度数据
- 用Python下载抖音无水印视频
- 谷歌添加vue开发工具插件
- 极验验证码(6.0.9)破解(一) 之 抓包分析
- 美图秀秀编辑器盖住了顶导怎么解决
- 计算机鼠标键盘没反应,终于找到为什么电脑鼠标键盘失灵了
- VS2019安装和使用教程(超详细)
- jvm内存模型、jvm内存结构、Java内存结构、Java内存模型(JMM)、Java对象模型的区别(吐血研究整理)
- 一种辅助整理WoS英文论文题录文档的方法(python-docx)