Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
React Native³õ̽
 
  3725  次浏览      28
 2018-1-12  
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcnblogs£¬ÎÄÕÂÆª·ù½Ì³Ì£¬ÊôÓÚ»ù´¡ÎÄÕ£¬´Ó´î½¨»·¾³µ½´úÂëÏêϸÐðÊö½éÉܽÏΪÏêϸ£¬¶ÔÓÚ³õѧÕß»áÓкܴóµÄ°ïÖú¡£

ǰÑÔ

ºÜ¾Ã֮ǰ¾ÍÏëÑо¿React NativeÁË£¬µ«ÊÇһֱûÓÐÂ䵨µÄ»ú»á£¬ÎÒÒ»Ö±ÈÏΪһ¸ö¼¼ÊõÒªÓÐÂ䵨µÄ³¡¾°²ÅÓÐÑо¿µÄÒâÒ壬¸ÕºÃ×î½üÓ­À´ÁËеÄAPP£¬Ôڿɿصķ¶Î§ÄÚ£¬ÎÒÃÇ¿ÉÒÔÔÚÉÏÃæ×öÈκÎÏë×öµÄÊÂÇé¡£

PS£ºÈκÎм¼ÊõµÄ³¢Ïʶ¼Ò»¶¨Òª¿ØÖÆÔÚ×Ô¼ºÄÜ¿ØÖƵķ¶Î§ÄÚ£¬Ê§°ÜÁË»áÓпÉÌæ»»·½°¸£¬²»ÒªÒýÆð²»¿ÉÄæµÄÎÊÌ⣬ÕâÑù»á¸øÍŶÓÔì³ÉÔÖÄÑÐԵĺó¹û¡£

ÊÂʵÉÏ£¬RN¾­¹ýÒ»¶Îʱ¼ä·¢Õ¹£¬ÒѾ­Óгä·ÖÊýÁ¿µÄÈ˳¢ÊÔ¹ýÁË£¬¾ÍÎÒÉí±ß¾ÍÓм¸Åú£¬°ý±áÒ²²»Ò»£º

¢Ù ×öUI¿ì

¢Ú »¹ÊÇÓкܶàÏÞÖÆ£¬²»ÈçÔ­ÉúNative

¢Û ÈëÃżòµ¥£¬ÄÜÈÃǰ¶Ë¿ìËÙ¿ª·¢App

¢Ü iOS&Android´ó²¿·Ö´úÂëͨÓÃ

¢Ý code-pushÄÜ×öÈȸüУ¬µ«ÊÇÓò»ºÃÒÀ¾É¿Ó

......

Ôڵõ½Ò»Ð©ÐÅÏ¢ºó£¬¿ÉÒÔ¿´³ö£¬ÒªÓÃRN¸ßЧÂʵÄ×ö³ö±È½Ï²»´íµÄAppÊÇÓпÉÄܵ쬵¥¿´Í¶Èë¶ÈÓë×î³õÉè¼ÆÊÇ·ñºÏÀí£¬¶øÇÒÏÖÔÚ¹ØÓÚReact NativeµÄ¸÷ÖÖÎĵµÊÇÏ൱·á¸»µÄ£¬ËùÒÔÕâ¸ö½×¶ÎÏëÇÐÈëRN¿ÉÄÜÊÇÒ»¸ö²»´íµÄÑ¡Ôñ¡£

´ø×ÅÊÔÊÔ²»³Ô¿÷µÄÏë·¨£¬ÎÒÃÇ¿ªÊ¼½ñÌìµÄѧϰ£¬ÕâÀïÊÇһЩ±È½ÏÓÅÖʵÄѧϰ×ÊÁÏ£º

https://github.com/reactnativecn/react-native-guide

×¼±¸½×¶Î

´î½¨¿ª·¢»·¾³

http://reactnative.cn/docs/0.36/getting-started.html

¹Ù·½µÄÀý×ÓÆäʵдµÄºÜºÃÁË£¬ÎÒÕÕ׏ٷ½µÄÀý×ÓÄܺܺõÄÅÜÆðÀ´£¬´ó¼Ò×Ô¼ºÈ¥¿´¿´°É

ÕâÀïÔÚÔËÐÐʱºòҪעÒâһϣ¬ÎÒÒòΪ¿ªÆôÁËFQ¹¤¾ß£¬Ò»ÔËÐоÍcrash£¬ÕâÀï²Â²âÊÇ·­£¨¿ÆÑ§ÉÏÍø·¨£©Ç½¹¤¾ß¶ÔlocalhostÔì³ÉÁËÓ°Ï죬µ¼Ö²»ÄܶÁÈ¡Îļþ£¬Õâ¸ö¿ÉÄÜÉæ¼°µ½RNµ×²ãʵÏÖ£¬ÎÒÃǺóÃæÉîÈëÁËÔÙÈ¥×öÑо¿£¬ÕâÀï¹Ø±ÕFQ¹¤¾ß¼´¿É¡£

È»ºóµÚ¶þ¸öÎÊÌ⣬ÊÇhttpµÄͼƬչʾ²»³öÀ´£¬ÕâÀïÕÛÌÚÁ˺ܾã¬È´·¢ÏÖºóÃæµÄÕ½ÚÓÐÁË˵Ã÷£¬appĬÈÏÖ»Ö§³ÖhttpsµÄÁ´½Ó£¬ÕâÀï´ó¼Ò¸ÄÏÂÅäÖü´¿É£º

https://segmentfault.com/a/1190000002933776

RNÖеÄjsʹÓõÄÊDZȽÏеÄÓï·¨£¬ÕâÀïÒ²ÐèÒª´ó¼Ò½øÐÐѧϰ£¬ÎÒѧϰµÄ¸ÐÊÜÊÇES6ÌṩÁ˺ܶàÓï·¨ÌÇ£¬µ«ÊÇÓм¸¸ö¶«Î÷ҲҪעÒâ¡£

Class

JavaScript֮ǰµÄ¼Ì³ÐÈ«²¿ÊǸ´Ð´Ô­ÐÍÁ´Ä£ÄâʵÏֵģ¬×÷Ϊ´óÐÍÓ¦Óÿò¼Ü£¬¼Ì³ÐÊDZز»¿ÉÉٵģ¬ËùÒÔES6Ö±½Ó½«Õâ¿éAPI»¯ÁË£¬ÎÒÕâÀïдһ¸ö¼òµ¥µÄdemo£º

1 class Animal {
2 constructor(name) {
3 this.name = name;
4 }
5 say() {
6 console.log('ÎÒÊÇ' + this.name);
7 }
8 }
9
10 class Person extends Animal {
11 say() {
12 console.log('ÎÒÊÇÈËÀà');
13 super.say();
14 }
15 }
16
17 var p = new Person('ҶСîÎ')
18 p.say();

1 /*
2 ÎÒÊÇÈËÀà
3 ÎÒÊÇҶСîÎ
4 */

Module

ÎÒÃÇÒ»°ãʹÓÃrequireJS½â¾öÄ£¿é»¯µÄÎÊÌ⣬ÔÚES6ÀïÃæÌá³öÁËModule¹¦ÄÜÔÚ¹Ù·½½â¾öÁËÄ£¿é»¯µÄÎÊÌ⣬ÕâÀïÓÅȱµã²»ÊÇÎÒÃÇ¿¼ÂǵÄÖØµã£¬¼òµ¥Á˽âÏÂÓï·¨£¬Á½¸öºËÐÄΪ£º

¢Ù export

¢Ú import

ES6ÒÔÒ»¸öÎļþΪµ¥Î»£¬Ò»¸öÎļþ¿ÉÒÔ¶à¸öÊä³ö£¬ÕâÀïÒÔRNµÄÒ»¸öÒýÓÃΪÀý£º

1 import React, { Component } from 'react';
2 import {
3 AppRegistry,
4 StyleSheet,
5 Text,
6 View
7 } from 'react-native';
8 import styles from './static/style/styles.js';

¿ÉÒÔ¼ÙÏ룬ÕâÀïÒ»¶¨»áÓÐÒ»¸öreactÎļþ£¬²¢ÇÒÀïÃæ¿ÉÄÜÊÇÕâ¸öÑùʽµÄ£º

export default class React......

expoet class Component ......

PS£ºÒ»¸öÎļþÖ»ÄÜÓÐÒ»¸ödefault

Êä³öµÄdefaultÒ»¶¨»á³öÏÖ£¬²»Ê¹ÓôóÀ¨ºÅ°ü¹ü£¬ÆäÓಿ·ÖËæÒâÊä³ö£¬ÕâÀïÓëÎÒÃÇʹÓÃrequire»òÓв»Í¬£¬ÐèҪעÒâ¡£

Ó¦¸Ã˵ES6ÌṩÁ˺ܶàÓï·¨ÌÇ£¬ÓÐÈËϲ»¶£¬ÓÐÈ˲»Ï²»¶£¬Õâ¸ö¿´°®ºÃʹÓðɣ¬±ÈÈç=>¼ýÍ·º¯Êý¡£Á˽âÁËÒÔÉϹØÏµ£¬ÔÙÅäºÏES6µÄһЩÎĵµ£¬»ù±¾¿ÉÒÔдRNµÄ´úÂëÁË¡£

³ÇÊÐÁбí

²ð·ÖĿ¼

ÕâÀÎÒÃÇ×öÒ»¸ö³ÇÊÐÁÐ±í£¬ÕæÊµµÄ·ÃÎʽӿڻñÈ¡Êý¾Ý£¬È»ºóäÖÈ¾Ò³Ãæ£¬¿´¿´×ö³öÀ´Ð§¹ûÈçºÎ¡£

Ê×ÏÈ£¬ÎÒÃdzõʼ»¯Ò»¸öRNÏîÄ¿£º

react-native init Citylist

È»ºóʹÓÃXcode´ò¿ªiOSÖеÄÏîÄ¿£¬±àÒëÔËÐУº

1 import React, { Component } from 'react';
2 import {
3 AppRegistry,
4 StyleSheet,
5 Text,
6 View
7 } from 'react-native';
8
9 export default class Citylist extends Component {
10 render() {
11 return (
12 <View style={styles.container}>
13 <Text style={styles.welcome}>
14 Welcome to React Native!
15 </Text>
16 <Text style={styles.instructions}>
17 To get started, edit index.ios.js
18 </Text>
19 <Text style={styles.instructions}>
20 Press Cmd+R to reload,{'\n'}
21 Cmd+D or shake for dev menu
22 </Text>
23 </View>
24 );
25 }
26 }
27
28 const styles = StyleSheet.create({
29 container: {
30 flex: 1,
31 justifyContent: 'center',
32 alignItems: 'center',
33 backgroundColor: '#F5FCFF',
34 },
35 welcome: {
36 fontSize: 20,
37 textAlign: 'center',
38 margin: 10,
39 },
40 instructions: {
41 textAlign: 'center',
42 color: '#333333',
43 marginBottom: 5,
44 },
45 });
46
47 AppRegistry.registerComponent('Citylist', () => Citylist);

ÕâÀï³ýÁËindex.io.js£¬ÆäËûÎļþÎÒÃDz»±ØÀí²Ç£¬ÎÒÃÇ×öµÄµÚÒ»¼þÊÂÇéÊÇ£¬½«ÑùʽÎļþ°þÀë³öÈ¥£¬Ð½¨staticÎļþ¼Ð£¬¼ÓÈëimagesºÍstyle£¬½«ÑùʽÎļþÒÆÈëstyleÎļþ£¬Ð½¨style.js£º

1 import {
2 StyleSheet
3 } from 'react-native';
4
5 export let styles = StyleSheet.create({
6 container: {
7 flex: 1,
8 justifyContent: 'center',
9 alignItems: 'center',
10 backgroundColor: '#F5FCFF',
11 },
12 welcome: {
13 fontSize: 20,
14 textAlign: 'center',
15 margin: 10,
16 },
17 instructions: {
18 textAlign: 'center',
19 color: '#333333',
20 marginBottom: 5,
21 },
22 });

È»ºóÊ×Ò³´úÂëÔÙ×öһЩ¸Ä¶¯£º

1 import React, { Component } from 'react';
2 import {
3 AppRegistry,
4 Text,
5 View
6 } from 'react-native';
7
8 import {styles} from './static/style/style';
9
10
11 export default class Citylist extends Component {
12 render() {
13 return (
14 <View style={styles.container}>
15 <Text style={styles.welcome}>
16 Welcome to React Native!
17 </Text>
18 <Text style={styles.instructions}>
19 To get started, edit index.ios.js
20 </Text>
21 <Text style={styles.instructions}>
22 Press Cmd+R to reload,{'\n'}
23 Cmd+D or shake for dev menu
24 </Text>
25 </View>
26 );
27 }
28 }
29
30 AppRegistry.registerComponent('Citylist', () => Citylist);
¸´ÖÆ´úÂë

PS£ºÕâÀïÓÐÒ»¸ö¼ýÍ·º¯Êý

1 () => Citylist
2 //===>
3 function () {
4 return Citylist;
5 }

¾²Ì¬×ÊÔ´°þÀëºó£¬ÎÒÃÇÏȲ»´¦ÀíÆäËüµÄ£¬ÎÒÃÇÀ´×öÊý¾ÝÇëÇó¡£

Êý¾ÝÇëÇó

RNËäÈ»ÄÚÖÃÁËajax¿â£¬µ«ÊÇÒ»°ãÍÆ¼öʹÓÃRN×Ô´øµÄFetch£¬×î¼òµ¥µÄʹÓÃÊÇ£º

fetch('https://mywebsite.com/mydata.json')

PS£ºÎÒÃÇÔÚѧϰRNµÄʱºò£¬Ò²ÊÇÔÚѧϰÉñÂí·½Ê½ÊÇÊʺϵ쬻òÕß˵ÊìϤʹÓúÏÊʵÄ×é¼þ

ÇëÇóÒ»¸ö½Ó¿ÚÊÇÕâÑùдµÄ£¨Ê¹ÓÃpromise£©£º

1 fetch ('https ://apikuai.baidu.com/city/getstartcitys')
2 .then((response) => response.json())
3 .then((jsonData) => {
4 console.log(jsonData);
5 })
6 .catch((e) => {
7 console.log(e)
8 })

ÕâÀï´ò¿ªµ÷ÊÔ»·¾³Ò»¿´£¬Êä³öÁËÎÒÃÇÒªµÄÊý¾Ý£º

Ò»°ãÀ´Ëµ£¬ÎÒÃÇÐèÒª¶ÔÊý¾ÝÇëÇóÓ¦¸Ã·âװΪһ¸öµ×²ã¿â£¬ÕâÀïÖ»×öһЩ¼òµ¥¸ÄÔì£¬ÕæÊµÏîÄ¿²»»áÕâÑù×ö£º

1 export default class Citylist extends Component {
2 getdata(url, suc, err) {
3 return fetch(url)
4 .then((response) => response.json())
5 .then((data) => {
6 if(data.errno == 0) {
7 suc && suc(data.data)
8 }
9 })
10 .catch((e) => {
11 console.log(e)
12 });
13 }
14 render() {
15
16 this.getdata ('https://apikuai.baidu.com/ city/getstartcitys', function(data) {
17 s = ''
18 });
19
20 return (
21 <View style={styles.container}>
22 <Text style={styles.welcome}>
23 Welcome to React Native!
24 </Text>
25 <Text style={styles.instructions}>
26 To get started, edit index.ios.js
27 </Text>
28 <Text style={styles.instructions}>
29 Press Cmd+R to reload,{'\n'}
30 Cmd+D or shake for dev menu
31 </Text>
32 </View>
33 );
34 }
35 }

PS£ºÕâÀïµÄʹÓò»Ò»¶¨ÕýÈ·£¬ÏÈÍê³É¹¦ÄÜÔٸĽø°É

ÎÒÃÇÈ¡ËùÓеijÇÊÐcities£¬Õâ¸öÊý¾ÝÁ¿ºÜ´ó£¬ÓÐ1000¶àÌõ¼Ç¼£¬Ò²¿ÉÒÔ²âÊÔÏÂÍ϶¯Ð§ÂÊÁË£¬ÕâÀïΪÀà¼ÓÈë¹¹Ô캯Êý£¬ÒòΪÁбíÊǿɱäµÄ£¬ÔÝʱ°ÑÁбíÊý¾Ý¹éΪstate£¨reactÒ²²»ÊÇÌ«Ê죬Èç¹ûÓÐÎÊÌâºóÐøÓÅ»¯£¬ÏÈÍê³É¹¦ÄÜ£©£º

1 constructor(props) {
2 super(props);
3 this.state = {
4 cities: []
5 };
6 }

1 var scope = this;
2 //±¾À´ÏëʹÓüýÍ·º¯ÊýµÄ£¬µ«ÊÇÁ˽ⲻ̫Çå³þ£¬demoʱºòÔÝʱÕâÑù°É
3 this.getdata²»('https://apikuai.baidu.com/ city/getstartcitys', function(data) {
4 scope.state.citys = data.cities;
5 });

ÁбíäÖȾ

´¦ÀíÁËÊý¾ÝÎÊÌâºó£¬ÎÒÃÇ¿ªÊ¼×öÁбíäÖȾ£¬ÕâÀïʹÓÃListView×é¼þ£¬Õâ¸ö×é¼þÓÃÒÔÏÔʾһ¸ö´¹Ö±¹ö¶¯ÁÐ±í£¬Êʺϳ¤ÁÐ±í£¬Á½¸ö±ØÐëµÄÊôÐÔÊÇdatasourceºÍrenderRow£º

dataSource£ºÁбíÊý¾ÝÔ´

renderRow£ºÖð¸ö½âÎöÊý¾ÝÔ´ÖеÄÊý¾Ý£¬È»ºó·µ»ØÒ»¸öÉ趨ºÃµÄ¸ñʽÀ´äÖȾ

¼òµ¥Êéд´úÂ룺

1 export default class Citylist extends Component {
2 constructor(props) {
3 super(props);
4
5 this.ds = new ListView.DataSource ( {rowHasChanged: (r1, r2) => r1 !== r2});
6 this.state = {
7 cities: this.ds.cloneWithRows([
8 {cnname
9 :
10 "ÎÄɽ׳×åÃç×å×ÔÖÎÖÝ",
11 enname
12 :
13 "wszzmzzzz",
14 extflag
15 :
16 "1",
17 flag
18 :
19 "0",
20 name
21 :
22 "wenshanzhuangzumiaozuzizhizhou",
23 parentid
24 :
25 "28",
26 regionid
27 :
28 "177",
29 shortname
30 :
31 "ÎÄɽ",
32 shownname
33 :
34 "ÎÄɽ",
35 type
36 :
37 "2"},{cnname
38 :
39 "ÎÄɽ׳×åÃç×å×ÔÖÎÖÝ",
40 enname
41 :
42 "wszzmzzzz",
43 extflag
44 :
45 "1",
46 flag
47 :
48 "0",
49 name
50 :
51 "wenshanzhuangzumiaozuzizhizhou",
52 parentid
53 :
54 "28",
55 regionid
56 :
57 "177",
58 shortname
59 :
60 "ÎÄɽ",
61 shownname
62 :
63 "ÎÄɽ",
64 type
65 :
66 "2"},{cnname
67 :
68 "ÎÄɽ׳×åÃç×å×ÔÖÎÖÝ",
69 enname
70 :
71 "wszzmzzzz",
72 extflag
73 :
74 "1",
75 flag
76 :
77 "0",
78 name
79 :
80 "wenshanzhuangzumiaozuzizhizhou",
81 parentid
82 :
83 "28",
84 regionid
85 :
86 "177",
87 shortname
88 :
89 "ÎÄɽ",
90 shownname
91 :
92 "ÎÄɽ",
93 type
94 :
95 "2"}
96 ])
97 };
98 }
99 getdata(url, suc, err) {
100 return fetch(url)
101 .then((response) => response.json())
102 .then((data) => {
103 if(data.errno == 0) {
104 suc && suc(data.data)
105 }
106 })
107 .catch((e) => {
108 console.log(e)
109 });
110 }
111 componentDidMount(){
112 var scope = this;
113 this.getdata ('https://apikuai.baidu.com/city/ getstartcitys', function(data) {
114 console.log(data)
115
116 scope.setState({
117 cities: scope.ds.cloneWithRows(data.cities)
118 });
119 //scope.state.citys = data.cities;
120 //this.getdata ('https://apikuai.baidu.com/ city/getstartcitys', (data) => {
121 // this.state.citys = data.cities;
122 //});
123 });
124 }
125 render() {
126 return (
127 <View style={styles.container}>
128 <ListView
129 dataSource={this.state.cities}
130 renderRow={(rowData) => <Text>{rowData.cnname}</Text>}
131 />
132 </View>
133 );
134 }
135 }

È»ºó¾ÍÕâÑùÁË£¬ËäÈ»³óÊdzóµã£¬µ«ÊÇ»¹ÄÜ¿´ÂÕâÀïÎÒÃÇÏȲ»È¥Àí²Ç³ÇÊеÄÅÅÐò£¬Ò²²»×öËÑË÷¹¦ÄÜ£¬ÎÒÃÇÏȰѲ¼¾Ö´¦ÀíÏ£¬ËûµÄ³óªÎÒÒѾ­Êܲ»ÁËÁË

Ñùʽ´¦Àí

ÏÖÔÚÎÒÃÇ¿ªÊ¼´¦ÀíÕâ¶ÎÑùʽ£º

1 import React, { Component } from 'react';
2 import {
3 AppRegistry,
4 ListView,
5 Text,
6 View
7 } from 'react-native';
8
9 import {styles} from './static/style/style';
10
11 export default class Citylist extends Component {
12 constructor(props) {
13 super(props);
14
15 this.ds = new ListView.DataSource ({rowHasChanged: (r1, r2) => r1 !== r2});
16 this.state = {
17 cities: this.ds.cloneWithRows([])
18 };
19 }
20 getdata(url, suc, err) {
21 return fetch(url)
22 .then((response) => response.json())
23 .then((data) => {
24 if(data.errno == 0) {
25 suc && suc(data.data)
26 }
27 })
28 .catch((e) => {
29 console.log(e)
30 });
31 }
32 componentDidMount(){
33 var scope = this;
34 this.getdata ('https://apikuai.baidu.com/city/ getstartcitys', function(data) {
35 console.log(data)
36
37 scope.setState({
38 cities: scope.ds.cloneWithRows (data.cities)
39 });
40 //scope.state.citys = data.cities;
41 //this.getdata ('https://apikuai.baidu.com/city/ getstartcitys', (data) => {
42 // this.state.citys = data.cities;
43 //});
44 });
45 }
46 render() {
47 return (
48 <View style={styles.container}>
49 <ListView style= {styles.listView} enableEmptySections={true}
50 dataSource={this.state.cities}
51 renderRow={(rowData) =>
52 <View style={styles.listItem} >
53 <Text>{rowData.cnname}</Text>
54 </View>
55 }
56 />
57 </View>
58 );
59 }
60 }
61
62 AppRegistry.registerComponent ('Citylist', () => Citylist);

1 import {
2 StyleSheet
3 } from 'react-native';
4
5 export let styles = StyleSheet.create({
6 container: {
7 flex: 1,
8 backgroundColor: '#F5FCFF',
9 },
10 listView: {
11 marginTop: 30,
12 flex: 1,
13 borderBottomColor: '#CCCCCC',//cellµÄ·Ö¸îÏß
14 borderBottomWidth:1
15 },
16 listItem: {
17 paddingTop: 15,
18 paddingBottom: 15,
19 paddingLeft: 10,
20 flexDirection:'row',
21 borderBottomColor:' #CCCCCC',//cellµÄ·Ö¸îÏß
22 borderBottomWidth:1
23 }
24 });

ʼþ°ó¶¨

È»ºó£¬ÎÒÃÇÔÙΪÿÐÐÊý¾Ý¼ÓÉϵã»÷ʼþ£¬ÕâÀïÒ²×ö¼òµ¥Ò»µã£¬´òÓ¡³öµ±Ç°ÐеÄÖµ¼´¿É£º

1 onPressAction(data){
2 alert(data.cnname)
3 }
4 render() {
5 return (
6 <View style={styles.container}>
7 <ListView style= {styles.listView} enableEmptySections={true}
8 dataSource= {this.state.cities}
9 renderRow= {(rowData) =>
10 <View style={ styles.listItem} >
11 <Text onPress= {() => this.onPressAction (rowData)} >{rowData.cnname} </Text>
12 </View>
13 }
14 />
15 </View>
16 );
17 }

PS£ºÎÒÄáÂ꣬Õâ¸öRNµÄѧϰ£¬ºÜ´ó³Ì¶È¾ÍÊÇÒ»¸ö¸öAPI»òÕß×é¼þµÄÊìϤ£¬Õâ¿é²»ÊìϤµÄ»°£¬×öÆðÀ´ÄÕ»ðµÄºÜ

ÎÒÕâÀ↑ʼÏë¸øTextÉèÖñ߿ò£¬Ôõô¶¼²»Äܳɹ¦£¬ºóÃæ¾Í¼ÓÁËÒ»²ãView¾ÍºÃÁË£¬ÕâÖÖСϸ½ÚÐèÒª¶àÃþË÷£¬Õâ¸öÊÇ×îÖյĽṹ£º

½áÓï

×÷Ϊһ¸ödemoµÄ»°£¬Õâ¸öÀý×Ó»ù±¾¿ÉÒÔ˵Ã÷һЩÎÊÌâµÄ£¬ËäÈ»ÎÒ±¾ÒâÊÇÏë×ö³ÉÕâ¸öÑù×ӵģº£©

ͨ¹ýÕâ¸öÀý×Ó£¬ÎÒÃǼòµ¥µÄѧϰÁËÏÂRNµÄ¿ª·¢Ä£Ê½£¬×ö³öÀ´µÄ¸ÐÊÜÊÇFacebookºÜÇ¿´ó£¬×öÁËÒ»¸öÌåϵÐԵĶ«Î÷£¬¾Ù¸öÀý×ÓÀ´Ëµ£¨¸öÈ˸ÐÊÜ£©

֮ǰÎÒÃÇ×öHybridµÄʱºòHeaderÊÇNativeÌṩµÄ£¬´ó¸Å×ö·¨ÊÇÕâÑùµÄ£º

1 //NativeÒÔ¼°Ç°¶Ë¿ò¼Ü»á¶ÔÌØÊâtagnameµÄ±êʶ×öĬÈϻص÷£¬Èç¹ûδע²ácallback£¬»òÕßµã»÷»Øµ÷callbackÎÞ·µ»ØÔòÖ´ÐÐĬÈÏ·½·¨
2 //backǰ¶ËĬÈÏÖ´ÐÐHistory.back£¬Èç¹û²»¿ÉºóÍËÔò»Øµ½Ö¸¶¨URL£¬NativeÈç¹û¼ì²âµ½²»¿ÉºóÍËÔò·µ»ØNaive´óÊ×Ò³
3 //homeǰ¶ËĬÈÏ·µ»ØÖ¸¶¨URL£¬NativeĬÈÏ·µ»Ø´óÊ×Ò³
4 this.header.set({
5 left: [
6 {
7 //Èç¹û³öÏÖvalue×ֶΣ¬ÔòĬÈϲ»Ê¹ÓÃicon
8 tagname: 'back',
9 value: '»ØÍË',
10 //Èç¹ûÉèÖÃÁËlefticon»òÕßrighticon£¬ÔòÏÔʾicon
11 //native»áÌṩ³£ÓÃͼ±êiconÓ³É䣬Èç¹ûÕÒ²»µ½£¬±ã»áÈ¥µ±Ç°ÒµÎñƵµÀרÓÃĿ¼»ñȡͼ±ê
12 lefticon: 'back',
13 callback: function () { }
14 }
15 ],
16 right: [
17 {
18 //ĬÈÏiconΪtagname£¬ÕâÀïΪicon
19 tagname: 'search',
20 callback: function () { }
21 },
22 //×Ô¶¨Òåͼ±ê
23 {
24 tagname: 'me',
25 //»áÈ¥hotelƵµÀ´æ´¢¾²Ì¬headerͼ±ê×ÊԴĿ¼ËÑѰ¸Ãͼ±ê£¬Ã»ÓбãʹÓÃĬÈÏͼ±ê
26 icon: 'hotel/me.png',
27 callback: function () { }
28 }
29 ],
30 title: 'title',
31 //ÏÔʾÖ÷±êÌ⣬×Ó±êÌâµÄ³¡¾°
32 title: ['title', 'subtitle'],
33
34 //¶¨ÖÆ»¯title
35 title: {
36 value: 'title',
37 //±êÌâÓÒ±ßͼ±ê
38 righticon: 'down', //Ò²¿ÉÒÔÉèÖÃlefticon
39 //±êÌâÀàÐÍ£¬Ä¬ÈÏΪ¿Õ£¬ÉèÖõϰÐèÒªÌØÊâ´¦Àí
40 //type: 'tabs',
41 //µã»÷±êÌâʱµÄ»Øµ÷£¬Ä¬ÈÏΪ¿Õ
42 callback: function () { }
43 }
44 });

ͨ¹ýÕâ¸öÔ¼¶¨£¬ÎÒÃǵÄNative¾Í»áÉú³ÉһϵÁÐheaderUI£º

¶øRN×öÁËÊ²Ã´ÄØ£¬Ëû¿ÉÄÜÊÇʵÏÖÁËÒ»¸öÕâÑùµÄ±êÇ©£¨»òÕß˵ÊÇÓï·¨ÌÇ£©£º

<Header title="" right="[]" ></Header>

È»ºóRN»á×Ô¼ºÈ¥½âÎöÕâ¸ö±êÇ©£¬Éú³ÉÉÏÊöµÄ¶ÔÏó£¬È»ºóÉú³ÉNativeµÄUI£¬Õâ¸öÎÒÃÇÆäʵҲÄÜ×öµ½£¬µ«ÊÇÎÒÃÇÒ»¸öÄÜ×öµ½£¬10¸ö¾Í²»Ò»¶¨×öµÃµ½ÁË£¬RNÅ£µÄµØ·½¾ÍÅ£ÔÚËûÌṩÁËÕâô´óÒ»Ûç¶«Î÷£º

È»ºó»¹ÓÐËûÒ»ÕûÌ×µÄÑùʽÌåϵ£¬·Ç³£Ö®´óÊֱʣ¬¶øÍ¨¹ýRNµÄÍêÉÆÔ¼¶¨£¬Éú³ÉÁËÒ»Ì×NativeUI£¬Ó¦¸Ã˵À´ÌåÑéÊǷdz£¸ßµÄ£¬¿ª·¢Ð§ÂÊÒòΪ¿ÉÒÔ×öµ½´ó²¿·ÖiOS AndroidͨÓã¬ËäÈ»ÕûÌ忪·¢Ð§ÂÊÎÞ·¨ÓëHybrid±È¼ç£¬µ«¾ø¶ÔÓÐÆäÓ¦Óó¡¾°¡£

ÎÒÃÇÒ²ÓÐһЩͬÊÂ˵ÁËһЩRNµÄÎÊÌ⣬µ«ÊÇ¿ò¼ÜÔÚ·¢Õ¹£¬ÈÝÆ÷ÔÚÓÅ»¯£¬ÕâЩÎÊÌâÔÚij¸öʱ¼äµãÓ¦¸ÃÄܽâ¾öµÄ£¬×ܵÄ˵À´£¬RN»¹ÊǺÜÓÐѧϰµÄ¼ÛÖµ£¬ºóÃæÎÒ¿ÉÄܻỨºÜ¶à¹¦·òÈ¥½øÐÐÂ䵨£¡£¡£¡

 

   
3725 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì