开始第一个RN项目(iOS版)我的电影列表0.1版,后面做列表版

  1. 打开上一节项目 index.ios.js,android打开index.android.js。我这里使用的是Atom编辑器,你也可以使用Sublime等任意文本编辑器。电影显示需要用到图片和文本,渲染缩略图需要用到Image组件,所以把Image添加到对React的import列表中。

    import {
      AppRegistry,
      StyleSheet,
      Text,
      View,
      Image
    } from 'react-native';

    ​准备电影数据,我们这里使用json​

    var MOCKED_MOVIES_DATA = [
      {title: '标题', year: '2015', posters: {thumbnail: 'http://i.imgur.com/UePbdph.jpg'}},
    ];

    修改Render​

    render() {
        var movie = MOCKED_MOVIES_DATA[0];
        return (
          <View style={styles.container}>
            <Text>{movie.title}</Text>
            <Text>{movie.year}</Text>
            <Image source={{uri: movie.posters.thumbnail}} />
          </View>
        );
      }

    ​由于没有加样式此时运行图片不会出来,这里我们要注意,图片一定要指定宽高才能显示出来。下面我来加入样式,删除原来样式替换如下样式:

    const styles = StyleSheet.create({
      container: {
      flex: 1,
      justifyContent: 'center',
      alignItems: 'center',
      backgroundColor: '#F5FCFF',
    },
    thumbnail: {
      width: 53,
      height: 81,
    },
    });

修改Render中图片加入新添加的样式。

<Image source={{uri: movie.posters.thumbnail}}
        style={styles.thumbnail} />

ps:iOS右键菜单选择reload重新加载修改内容。 Hardware/Shake GesTure

成功运行界面

完整代码如下:

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */
import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  Image
} from 'react-native';
var MOCKED_MOVIES_DATA = [
  {title: '标题', year: '2016', posters: {thumbnail: 'https://img1.doubanio.com/view/photo/thumb/public/p2324130709.jpg'}},
];
class AwesomeProject extends Component {
  render() {
    var movie = MOCKED_MOVIES_DATA[0];
    return (
      <View style={styles.container}>
        <Text>{movie.title}</Text>
        <Text>{movie.year}</Text>
        <Image source={{uri: movie.posters.thumbnail}}
        style={styles.thumbnail} />
      </View>
    );
  }
}
const styles = StyleSheet.create({
  container: {
  flex: 1,
  justifyContent: 'center',
  alignItems: 'center',
  backgroundColor: '#F5FCFF',
},
thumbnail: {
  width: 53,
  height: 81,
},
});
AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject);

总结:本章学习了知识点

  1. image图片组件使用,必须指定宽度
  2. Text组件点使用
  3. 样式文件
  4. json数据绑定
  5. 注册组件Image
  6. Run Reload修改的代码

百度云盘 02第一个RN项目

React Native 技术交流群127482131,欢迎大家一起来学习RN。

转载请保留文章链接 http://www.reactnative.pw/

ReactNative新手学习之路02第一个RN项目的更多相关文章

  1. ReactNative新手学习之路01-创建项目开始

    新手学习之路01-创建项目开始 小菜鸟准备学习RN开发,决定写下自己的学习历程,方便其他也想要学习RN的人,后期会持续更新写下自己所有学习经历,一步步从菜鸟成长成业内高手.开发环境准备,本文默认环境已 ...

  2. ReactNative新手学习之路07ListView_ renderHeader使用StaticContainer

    react native新手学习之路07ListView_ renderHeader使用StaticContainer 1.某些特殊场景需要用ScrollView滚动和ListView配合但是不幸运的 ...

  3. ReactNative新手学习之路04 组件化开发轮播图swiper支持安卓和IOS

    react native 新手之路04 组件化开发轮播图swiper支持安卓和IOS npm install react-native-carousel --save git 地址Properties ...

  4. ReactNative新手学习之路06滚动更新ListView数据的小示例

    本节带领大家学习使用ListView 做一个常用的滚动更新数据示例: 知识点: initialListSize={200} 第一次加载多少数据行 onEndReached={this.onEndRea ...

  5. ReactNative新手学习之路03真机调试

    React Native新手入门03真机调试(iOS) 从设备访问开发服务器 在启用开发服务器的情况下,你可以快速的迭代修改应用,然后在设备上查看结果.这样做的前提是你的电脑和设备必须在同一个wifi ...

  6. ReactNative新手学习之路05 使用夜神模拟器调试ReactNative

    1.首先确保adb环境添加到path环境   2.安装好夜神模拟器   3.运行模拟器   4.adb connect 127.0.0.1:62001   5.摇一摇设置IP和端口 如127.168. ...

  7. Python学习之路——pycharm的第一个项目

    Python学习之路——pycharm的第一个项目 简介: 上文中已经介绍如何安装Pycharm已经环境变量的配置.现在软件已经安装成功,现在就开始动手做第一个Python项目.第一个“Hello W ...

  8. 我的第一个 RN 项目-趣闻

    代码地址如下:http://www.demodashi.com/demo/13486.html 项目预览 IOS: Android: 扫描体验: 或者点我 整体功能跟之前小程序和 Android 项目 ...

  9. Spring Boot的学习之路(02):和你一起阅读Spring Boot官网

    官网是我们学习的第一手资料,我们不能忽视它.却往往因为是英文版的,我们选择了逃避它,打开了又关闭. 我们平常开发学习中,很少去官网上看.也许学完以后,我们连官网长什么样子,都不是很清楚.所以,我们在开 ...

随机推荐

  1. jQuery:年月日三级联动

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs ...

  2. javascript如何设置DIV背景色为随机色

    随机色有两种格式: 效果预览:http://wjf444128852.github.io/DEMOLIST/JS/test/index.html 1.rgb(xxx,xxx,xxx) 2.#xxxxx ...

  3. jquery.datatables中文语言设置

    /* * sErrMode * 错误信息显示方式 * 分别为alert和throw,默认为alert */ "sErrMode": "throw", /* * ...

  4. hibernate(2) —— 主键策略

    框架提供了三种主键生成方式,一种是由用户自己维护,一种是由hibernate框架维护,另一种是由数据库维护. 自己维护就是在插入数据的时候,一定要指定主键的值,否则会出错,如果由框架维护和由数据库维护 ...

  5. Menu创建菜单

    菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu).上下文菜单(ContextMenu)和子菜单(SubMenu),今天这讲是O ...

  6. Activity详解三 启动activity并返回结果

    首先看演示: 1 简介 .如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int ...

  7. JavaScript的个人学习随手记(一)

    JavaScript 简介  要学习的人可以到W3School http://www.w3school.com.cn/b.asp JavaScript 是世界上最流行的编程语言. 这门语言可用于 HT ...

  8. python 函数式编程

    1高阶函数 1.1 变量可以指向函数,可以把一个函数赋值给变量 如下代码 >>> f = abs >>> f(10) 10 1.2 变量可以指向函数,函数的形参也能 ...

  9. MySQL慢查询Explain Plan分析

    Explain Plan 执行计划,包含了一个SELECT(后续版本支持UPDATE等语句)的执行 主要字段 id 编号,从1开始,执行的时候从大到小,相同编号从上到下依次执行. Select_typ ...

  10. MySQL GROUP_CONCAT函数使用示例:如何用一个SQL查询出一个班级各个学科第N名是谁?

    如何用一个SQL查询出一个班级各个学科第N名是谁? 首先贴出建表语句,方便大家本地测试: -- 建表语句 CREATE TABLE score ( id INT NOT NULL auto_incre ...