热门标签 | 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官方文档链接



推荐阅读
  • 本文详细介绍了ActivityManagerService (AMS) 的工作原理及其在Android系统中的重要角色。AMS作为system_server进程的一部分,在系统启动时加载,负责管理和协调应用程序中的Activity和服务(Service)。文章将通过具体的接口图和通信流程,帮助读者更好地理解AMS的工作机制。 ... [详细]
  • 本文详细介绍了如何在现有的Android Studio项目中集成JNI(Java Native Interface),包括下载必要的NDK和构建工具,配置CMakeLists.txt文件,以及编写和调用JNI函数的具体步骤。 ... [详细]
  • 如何使用Ionic3框架创建首个混合开发应用
    混合开发是指结合原生(Native)与网页(Web)技术进行移动应用开发的方法。本文将详细介绍如何利用Ionic3这一流行的混合开发框架,从环境搭建到创建并运行首个应用的全过程。 ... [详细]
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • 程序员如何优雅应对35岁职业转型?这里有深度解析
    本文探讨了程序员在职业生涯中如何通过不断学习和技能提升,优雅地应对35岁左右的职业转型挑战。我们将深入分析当前热门技术趋势,并提供实用的学习路径。 ... [详细]
  • 本文详细介绍如何使用 Python 集成微信支付的三种主要方式:Native 支付、APP 支付和 JSAPI 支付。每种方式适用于不同的应用场景,如 PC 网站、移动端应用和公众号内支付等。 ... [详细]
  • LCUI 2.1.0 版本现已推出,这是一个用 C 语言编写的图形用户界面开发库,适合创建轻量级的桌面应用程序。此次更新包括多项修复和功能增强,并正式宣布将启动 Android 支持的开发计划。 ... [详细]
  • 本文详细介绍如何在IntelliJ IDEA 14中打包Android应用APK文件,并提供查询SHA1值的具体步骤。 ... [详细]
  • 本文介绍了在Android项目中实现时间轴效果的方法,通过自定义ListView的Item布局和适配器逻辑,实现了动态显示和隐藏时间标签的功能。文中详细描述了布局文件、适配器代码以及时间格式化工具类的具体实现。 ... [详细]
  • 本文记录了Android学习的初期阶段,包括Android的基本架构、Dalvik虚拟机与JVM的区别、ADB工具的使用以及应用程序的打包安装流程。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 在 Flutter 开发过程中,开发者经常会遇到 Widget 构造函数中的可选参数 Key。对于初学者来说,理解 Key 的作用和使用场景可能是一个挑战。本文将详细探讨 Key 的概念及其应用场景,并通过实例帮助你更好地掌握这一重要工具。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • 本文详细介绍超文本标记语言(HTML)的基本概念与语法结构。HTML是构建网页的核心语言,通过标记标签描述页面内容,帮助开发者创建结构化、语义化的Web页面。 ... [详细]
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社区 版权所有