npm install -g react-native-clireact-native init yourproject --version 0.44.3
--version 0.44.3, 如果不加上去默认是生成最新版本的工程, 老的电脑可能因为报错而无法运行; 如果你使用的 zsh 安装的 node, 那么请在系统自带的 Terminal 中设置启动的 shell 为登录 shell, 因为 react-native 的一些操作需要打开 Terminal 执行 node相关命令, 主要就是执行 package.sh, 否则模拟器会出现 bundle 之类的错误; 也可以尝试一下 react-native bundle --entry-file index.js --bundle-output ./ios/bundle/index.ios.jsbundle --platform ios --assets-dest ./ios/bundle --dev falsecd yourprojectreact-native run-iosimport { Dimensions } from ‘react-native‘Dimensions.get(‘window‘) 获取对象, 有如下属性
uri: http://网络地址require(‘./本地地址‘)cover(默认), contain, stretchAlert.alert(‘content‘)TouchableOpacity
ScrollView 需要给定高度才会有效, 但是一般也不给高度, 也不设置 flex 属性, 而是放内部的元素将 ScrollView 撑起来
var dataSource = ListView.DataSource({rowHasChanged: (r1, r2) => r1 != r2});
this.state = {
dataSource: dataSource.cloneWithRows(['row1', 'row2', 'row3'])
}
render() {
return (
<ListView dataSource={this.state.dataSource}
renderRow={(rowData) => <Text>{rowData}</Text>}
/>
</ListView>
);
}
上面的套路代码, 在 renderRow 中的回调函数太过简单, 一般回调是这样子的
renderRow = (rowData, sectionId, rowId, highlightRow) => {
// rowData 为数据
// sectionId 为页, 列斯通讯里的字母开头序列
// rowId 为 row 的 index, 是在 section 中的 index
// highlightRow 为高亮的 row
};还可以为 ListView 定义 getSectionHeaderData, getRowData, renderRow, renderSectionHeader, 这些在实现的时候查看文档即可
原文:https://www.cnblogs.com/megachen/p/11134748.html