序:
学完了Flex布局和Text Image组件,感觉可以总结一下了。因为本人对英雄联盟比较感兴趣,所以准备把前面学习的做一个应用小例子。
都是前面文章提到内容,主要练习下熟练度,就不写备注了。
先看下效果:
代码如下:
import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, Image, } from 'react-native'; var heroData = require('./ImageData.json'); class RNHybrid extends Component { render() { return( <View style={styles.container}> {this.renderLoadForView()} </View> ); } renderLoadForView(){ var forView = []; var heroArray = heroData.data for (var i = 0; i < heroArray.length; i++) { var hero = heroArray[i]; forView.push( <View key={i} style={styles.containViewStyle}> <Image source={{uri: hero.img}} style={styles.imageStyle}/> <Text key={i}> {hero.title} </Text> </View> ); } return forView; } } const styles = StyleSheet.create({ container:{ marginTop:100, flexDirection:'row', flexWrap:'wrap', justifyContent:'space-around', }, containViewStyle:{ alignItems:'center', justifyContent:'center', width:120, height:120, borderColor:'black', borderWidth:1, marginBottom:10, }, imageStyle:{ width:60, height:60, }, }); AppRegistry.registerComponent('RNHybrid', () => RNHybrid);
前面博客没有提到的知识点说明:
1、var heroData = require('./ImageData.json');
看下Json文件:
{ "data": [ { "img" : "hero1", "title" : "木木" }, { "img" : "hero2", "title" : "剑姬" }, { "img" : "hero3", "title" : "船长" }, { "img" : "hero4", "title" : "日女" }, { "img" : "hero5", "title" : "锤石" }, { "img" : "hero6", "title" : "老鼠" } ] }
解答:这句话的意思是拿到json这个对象,就相当于OC中拿到一个解析好的Json文件。剩下的大家都知道了。
2、图片位置:
解答:图片我都放在Asset里面了,当然你也可以网络加载,或者放在RN项目中。
3、循环添加视图,JSX语法有说可以看下。JSX语法
资源文件:https://pan.baidu.com/s/1i5l95xb
作者:ZY_FlyWay 发表于2017/8/16 15:27:24 原文链接
阅读:24 评论:0 查看评论