ReactNative-綜合案例(03)

本文出自:我的個(gè)人博客:http://www.cenzhijun.top/
最近幾天學(xué)了幾個(gè)ReactNative組件,總覺(jué)得單純的學(xué)幾個(gè)組件進(jìn)步慢,所以我打算做一些綜合性的小案例备徐,練習(xí)下實(shí)戰(zhàn)蔓腐,我從網(wǎng)上找到一個(gè)小案例
,感覺(jué)挺好璧函,也學(xué)習(xí)了很多,代碼內(nèi)容可能不太一樣周崭,主要區(qū)別是:我把RN官方不推薦或者已經(jīng)放棄了的組件進(jìn)行了替換柳譬,如果有需要的可以互相參考下

接著上篇案例開始寫,這篇文章將會(huì)講解如何怎樣利用WebView加載HTML文件续镇。

WYNewsDetail.js文件寫如下代碼:

import React, { Component } from 'react';
import {
    StyleSheet,
    Text,
    View,
    WebView
} from 'react-native';

import Request from '../Utils/WYRequest';

export default class WYNewsDetail extends Component {
  static navigationOptions = ({ navigation }) => ({
    title: navigation.state.params.title,
  });

  constructor(props){
    super(props);

    this.state = {
      docid:'',
    };
  }

  componentDidMount() {
    const {params} = this.props.navigation.state;

    this.setState({
      docid: params.docid,
      html: '',
    });

    var url_api = 'http://c.m.163.com/nc/article/' + params.docid + '/full.html';
    Request.get(url_api, (responseData) => {

      // 取出數(shù)據(jù)
      var allData = responseData[this.state.docid];

      var body = allData['body'];
      // 取出圖片
      var img = allData['img'];
      for (var i = 0; i < img.length; i++) {
        var item = img[i];
        var ref = item.ref;
        var src = item.src;
        var newImg = '![]('+ src +')';
        body = body.replace(ref, newImg);

        console.log('====================================');
        console.log(ref, src);
        console.log('====================================');
      }

      // 更新UI
      this.setState({
        html: body,
      });
    }, (error) => {
      alert(error);
    });
  }

  render() {
    return (
      <WebView
        automaticallyAdjustContentInsets={true}
        // source={{uri:'http://www.baidu.com'}}  加載網(wǎng)頁(yè)
        source={{html: this.state.html, baseUrl: ''}}
        javaScriptEnabled={true}
        domStorageEnabled={true}
        startInLoadingState={true}
      />
    );
  }
}

const styles = StyleSheet.create({
  background: {
    backgroundColor: 'red',
    flex: 1,
    justifyContent: 'center',
    alignItems:'center'
  },

  textStyle: {
    fontSize:30,
  }
});

主要知識(shí)點(diǎn):

  • 界面?zhèn)髦?/li>
static navigationOptions = ({ navigation }) => ({
    title: navigation.state.params.title,
  });
  
componentDidMount() {
    const {params} = this.props.navigation.state;

    this.setState({
      docid: params.docid,
      html: '',
    });

還有一個(gè)bug美澳,就是當(dāng)界面跳轉(zhuǎn)的時(shí)候,左上角返回按鈕和文字依舊是系統(tǒng)的藍(lán)色,如何修改顏色制跟,就用到了自定義功能了

const StackOptions = ({navigation}) => {
    console.log(navigation);
    let {state,goBack} = navigation;

    // 用來(lái)判斷是否隱藏或顯示header
    const visible= state.params.isVisible;
    let header;
    if (visible === true){
        header = null;
    }
    const headerStyle = {backgroundColor:'#4ECBFC'};
    const headerTitle = state.params.title;
    const headerTitleStyle = {fontSize:FONT_SIZE(20),color:'white',fontWeight:'500'}
    const headerBackTitle = false;
    const headerLeft = (
        <Button
            isCustom={true}
            customView={
                            <Icon
                                name='ios-arrow-back'
                                size={30}
                                color='white'
                                style={{marginLeft:13}}
                            />
                        }
            onPress={()=>{goBack()}}
        />
    );
    return {headerStyle,headerTitle,headerTitleStyle,headerBackTitle,headerLeft,header}
};

通過(guò)下面的方式調(diào)用:

const MyApp = StackNavigator({
    MyTab: {
        screen: MyTab,
    },
    Detail: {
        screen: Detail,
        navigationOptions: ({navigation}) => StackOptions({navigation})
    },
)};

至此第一個(gè)小案例就做完了

效果圖

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末舅桩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子雨膨,更是在濱河造成了極大的恐慌擂涛,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件聊记,死亡現(xiàn)場(chǎng)離奇詭異撒妈,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)排监,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門狰右,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人舆床,你說(shuō)我怎么就攤上這事棋蚌。” “怎么了挨队?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵谷暮,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我盛垦,道長(zhǎng)湿弦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任情臭,我火速辦了婚禮省撑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘俯在。我一直安慰自己竟秫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布跷乐。 她就那樣靜靜地躺著肥败,像睡著了一般。 火紅的嫁衣襯著肌膚如雪愕提。 梳的紋絲不亂的頭發(fā)上馒稍,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音浅侨,去河邊找鬼纽谒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛如输,可吹牛的內(nèi)容都是我干的鼓黔。 我是一名探鬼主播央勒,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼澳化!你這毒婦竟也來(lái)了崔步?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缎谷,失蹤者是張志新(化名)和其女友劉穎井濒,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體列林,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瑞你,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了席纽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捏悬。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撞蚕,死狀恐怖润梯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情甥厦,我是刑警寧澤纺铭,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站刀疙,受9級(jí)特大地震影響舶赔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谦秧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一竟纳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疚鲤,春花似錦锥累、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至诲宇,卻和暖如春际歼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背姑蓝。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工鹅心, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纺荧。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓旭愧,卻偏偏與公主長(zhǎng)得像溯泣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子榕茧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,863評(píng)論 25 707
  • 這篇文章轉(zhuǎn)載自“折騰范兒の味精”垃沦,看完覺(jué)得寫得確實(shí)很精彩,值得準(zhǔn)備在項(xiàng)目中引入動(dòng)態(tài)更新框架的同學(xué)參詳用押。我看完之后肢簿,...
    mercurygear閱讀 2,540評(píng)論 0 43
  • 文/安小左 手握繁華一季絕世獨(dú)立于你深情的眼 嫣紅的臉頰賦予這六月煙雨寂寞滂沱 我知你泣無(wú)聲交匯在我心口之上成潭 ...
    安小左閱讀 284評(píng)論 0 3
  • ——那些文章后面你不知道的事: 曾經(jīng)寫的故事池充,已經(jīng)不知道如何再下筆,曾經(jīng)結(jié)束了的東西缎讼,不知道如何能重新開始收夸。 離開...
    南山1閱讀 448評(píng)論 0 0
  • 2011年夹纫,春節(jié)咽瓷。 她說(shuō)想我了,我何嘗不想她舰讹?于是茅姜,我叫她去我們家過(guò)春節(jié),她說(shuō)去你家過(guò)年肯定不行月匣,要去的話也得是年...
    sYnecs閱讀 141評(píng)論 0 2