热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ReactNativeListview的各个属性解释?

今天终于成功使用ReactNative打包APK成功,IOS暂时没有

今天终于成功使用 React Native 打包 APK 成功,

IOS 暂时没有

1
开发者账号

所以先弄

1
Android

.
组件第一个遇到的就是

1
ListView

, 实在有些看不太明白加之

1
人懒

,
所以前来请教经验

在很多

1
ListView

的例子中都有这样一个属性

1
rowHasChanged

按理说他应该是

1
布尔值

(在后面可以看到它却显示为

1
s1

)
以下是我做的测试代码

1
如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Yes extends Component {



  constructor(){

    super();

    var ds = new ListView.DataSource({

      rowHasChanged: (r1, r2) => r1 !== r2

    });

    this.state = {

      dataSource: ds.cloneWithRows(['row 1', 'row 2']),

    }

  }



  componentDidMount(){

    var that = this;



    setTimeout(()=>{

      that.setState({

        dataSource: this.state.dataSource.cloneWithRows(['row 1', 'row 2','row 3'])

      });

    },1000);

  }



  render() {

    return (

   
      dataSource={this.state.dataSource}

      renderRow={(rowData,rowHasChanged) => {rowData +':'+ rowHasChanged}}

    />

    );

  }

}

我不知道他有什么作用, 我尝试将

1
!===

改为

1
===

, 对例子完全没有影响.

然后我尝试将他显示出来

1
2
3
4

    dataSource={this.state.dataSource}

    renderRow={(rowData,rowHasChanged) => {rowData +':'+ rowHasChanged}}

    />

结果为

row1:s1
row2:s1

1
1秒后变为由于`setTimeout(...)`,


row1:s1
row2:s1
row3:s1

1
rowHasChanged: (r1, r2) => r1 !== r2

中的

1
!==

改为

1
===

没有任何影响, 那么这个

1
rowHasChanged

是做什么的呢,它是

1
ListView

它是一个用来控制组件的属性吗?

1
另外想请教如何学习 react-native 的相关组件,总觉得官方文档看起来生涩.


顺便再问一下:


1
setTimeout()

我为了访问当前

1
this

在外面使用了

1
that

存储,

1
ES2015

中有没有什么方法避免使用

1
that

1
_this

这样的变量

一共三个问题:


  1. 1
    rowHasChanged

    是什么


  2. 学习 react native component 的技巧(例如是否有必要从

    1
    Android

    了解?)


  3. ES6 中 避免使用

    1
    that

    1
    _this

    1
    bind

    的方法


有好干货在手的请用力砸我


附录: ReactNative官方文档链接



推荐阅读
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 使用REM和媒体查询实现响应式布局
    本文介绍如何利用REM单位和媒体查询(Media Queries)来创建适应不同屏幕尺寸的网页布局。通过具体示例,展示在不同屏幕宽度下如何调整页面元素的样式。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • iOS如何实现手势
    这篇文章主要为大家展示了“iOS如何实现手势”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“iOS ... [详细]
  • Android 开发技巧:使用 AsyncTask 实现后台任务与 UI 交互
    本文详细介绍了如何在 Android 应用中利用 AsyncTask 来执行后台任务,并及时将任务进展反馈给用户界面,提高用户体验。 ... [详细]
  • 本文探讨了如何利用 Android 的 Movie 类来展示 GIF 动画,并详细介绍了调整 GIF 尺寸以适应不同布局的方法。同时,提供了相关的代码示例和注意事项。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文介绍了用户界面(User Interface, UI)的基本概念,以及在iOS应用程序中UIView及其子类的重要性和使用方式。文章详细探讨了UIView如何作为用户交互的核心组件,以及它与其他UI控件和业务逻辑的关系。 ... [详细]
  • 深入理解iOS中的链式编程:以Masonry为例
    本文通过介绍Masonry这一轻量级布局框架,探讨链式编程在iOS开发中的应用。Masonry不仅简化了Auto Layout的使用,还提高了代码的可读性和维护性。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 在Android中实现黑客帝国风格的数字雨效果
    本文将详细介绍如何在Android平台上利用自定义View实现类似《黑客帝国》中的数字雨效果。通过实例代码,我们将探讨如何设置文字颜色、大小,以及如何控制数字下落的速度和间隔。 ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
  • Android 中的布局方式之线性布局
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
author-avatar
武储中专_444
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有