RN中子元件和父元件之間的資料傳遞問題
使用RN做專案已經有兩個月了,雖然現在大部分情況下已經使用了Redux,進行狀態的管理和資料的處理,後續會說一下自己是如何使用Redux的,現在先說一下在RN中一個關鍵的資料傳遞問題,雖然後續可能專案中添加了Redux架構,但也不代表這每個頁面都去使用,畢竟為了一個簡單的資料,需要一堆操作,也挺麻煩的。
1 父元件傳遞給子元件資料
這個是比較簡單,也是比較常見的。
比如:官網上props這一節中的這個例子
import React, { Component } from 'react';
import { AppRegistry, Text, View } from 'react-native' ;
class Greeting extends Component {
render() {
return (
<Text>Hello {this.props.name}!</Text>
);
}
}
class LotsOfGreetings extends Component {
render() {
return (
<View style={{alignItems: 'center'}}>
<Greeting name='Rexxar' />
<Greeting name='Jaina' />
<Greeting name='Valeera' />
</View>
);
}
}
AppRegistry.registerComponent('LotsOfGreetings', () => LotsOfGreetings);
我們發現類Greeting 是子元件,它在使用父元件LotsOfGreetings 裡面的資料的時候,會填寫屬性name=’XXX’,父元件中這樣寫,子元件就可以利用this.props.name去使用這個資料,所以以後在想從父元件向子元件傳遞資料的時候,就可以利用這種方式。
2 子元件向父元件傳遞資料
這種是大家遇到比較多,且會迷茫的地方,其實原理差不多,也很簡單。
還拿上面的情況來說,我稍加改造一下:
import React, { Component } from 'react';
import { AppRegistry, Text, View } from 'react-native';
class Greeting extends Component {
_onPressButton(){
this.props.callback("hello wrold");
}
render() {
return (
<TouchableHighlight onPress={this._onPressButton.bind(this)}>
<Text>Hello {this.props.name}!</Text>
</TouchableHighlight >
);
}
}
class LotsOfGreetings extends Component {
_onPressButton(str){
str....
}
render() {
return (
<View style={{alignItems: 'center'}} callback={this._onPressButton.bind(this)}>
<Greeting name='Rexxar' />
<Greeting name='Jaina' />
<Greeting name='Valeera' />
</View>
);
}
}
AppRegistry.registerComponent('LotsOfGreetings', () => LotsOfGreetings);
上面是直接props傳遞了資料,這次我利用props傳遞方法,然後使用方法來回調資料,這種方式,如果對state和props熟悉的應該比較容易看懂,子元件執行了父元件的方法,同時會把子元件的資料傳遞過去,這樣父元件中的方法就可以使用子元件的資料。
後續我會再說一下,沒有關係的元件之間是如何傳遞資料的,其實更簡單,就跟Android裡面的監聽是一樣,使用監聽的方式,接收資料,並執行自己的操作即可。
相關推薦
RN中子元件和父元件之間的資料傳遞問題
使用RN做專案已經有兩個月了,雖然現在大部分情況下已經使用了Redux,進行狀態的管理和資料的處理,後續會說一下自己是如何使用Redux的,現在先說一下在RN中一個關鍵的資料傳遞問題,雖然後續可能專案中添加了Redux架構,但也不代表這每個頁面都去使用,畢竟為了
React中子元件和父元件之間傳值
最近公司的專案在用react,所以才開始接觸react,react和vue一樣,都是元件化的框架,那麼子元件和父元件之間怎麼傳值呢? 父元件向子元件傳值 ,父元件通過屬性的形式向子元件傳遞引數,子元件
vue2.0 子元件和父元件之間的傳值(轉載)
Vue是一個輕量級的漸進式框架,對於它的一些特性和優點在此就不做贅述,本篇文章主要來探討一下Vue子父元件通訊的問題 首先我們先搭好開發環境,我們首先得裝好git和npm這兩個工具(如果有不清楚的同學請自行百度哦) 環境搭建步驟: 開啟git ,執行 npm install --global vue-cl
Java中子類和父類之間的呼叫關係
在講之前,一些基本知識是應該具備的: 1.如果一個類中沒有定義構造器,編譯器在編譯時會自動加上預設無參構造器: public ClassName {} 2. this 和 super 的區別。 3.每個類直接或間接是Object的子類,Object只有一個無參構造方法。
Vue 中父元件和子元件之間獲取對方資料和方法
父元件獲取子元件的資料和方法 one 在父元件中呼叫子元件時,定義一個ref(其實和選擇器類似): <Common ref="commonChild" :pathologyId="form.pathologyId" /> 在父元件中獲取子元件屬性和方
Vue中用v-model實現父元件和子元件之間的資料通訊
在Vue中實現父子元件之間的資料通訊,除了用傳統的Props/emit還有sync外,還能使用v-model來實現(2.2.0 新增)。 型別:{ prop?: string, event?: string } model允許一個自定義元件在使用 v-mod
vue 的父元件和子元件互相獲取資料和方法
父元件主動獲取子元件的資料和方法 1.呼叫子元件的時候 定義一個ref <headerchild ref="headerChild"></headerchild> 2.在父元件裡面通過 this.$refs.headerChild.屬性 this.$refs.h
Vue2.0中子元件向父元件傳遞資料的方法,以完整demo演示
子元件child.vue原始碼:<template> <div class="child"> <button @click="sendData">點擊向父元件傳資料</button> </div> &
Angular2父子元件之間資料傳遞:@Input和@Output (上)
為了讓大家學習起來輕鬆、易懂,小編儘量做到篇幅短,語言通俗易懂,知識點分段來講,以免太長了看起來很累,也很容易失去耐心閱讀下去,希望大家理解和支援,同時希望大家點贊和分享出去,讓更多的志同道合的朋友來學習 Angular 提供了@Input和@Output語法來處理元
Vue中子元件呼叫父元件的方法
Vue中子元件呼叫父元件的方法 相關Html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title>
vue高階屬性 provide/inject,父元件向子元件或父元件的子元件的子元件...傳遞資料
官網說明:provide 和 inject 主要為高階外掛/元件庫提供用例。並不推薦直接用於應用程式程式碼中 以允許一個祖先元件向其所有子孫後代注入一個依賴,不論元件層次有多深,並在起上下游關係成立的時間裡始終生效。 provide 選項應該是一個物件
子元件向父元件傳值(事件發生在子元件中)和事件
專案中一個功能 可能在很多地方都有出現 那麼此時我們肯定是要抽成一個元件, 如果此功能中需要傳值呢 我覺得子元件向父元件傳值, 父元件呼叫子元件裡面的事件, 父元件向子元件傳值云云…. 前兩者真的是需要仔細點琢磨 專案有個需求: 需要對編號:中的值進行純數字驗證並且進行搜尋,
QT 子視窗和父視窗之間傳輸資料
子窗體類中定義: signals: void sendMapValue(QStringList); //傳送訊號 傳遞資訊 QStringList為引數型別 父視窗中定義: private slots: void receiveMapValue(QStringList)
Android : 事件分發,以及消除子控制元件和父控制元件互相的影響
效果圖 消除在上下滑的時候讓下面的listview控制元件不進行滑動 如題,先上xml的程式碼 父控制元件listview <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.Con
父元件中呼叫子元件,父元件資料更新傳到子元件後,子元件頁面未更新的問題
問題描述:父元件呼叫了一個子元件,傳遞了一個id的屬性到子元件,但是在子元件中將這個id的props屬性賦值給了data裡面定義的另外一個屬性myId,並且寫了watch監聽這個id的props。 結果:第一次的時候子元件並沒有更新介面(即data裡面的myId屬性沒有更新);第二次及以後就
Vue筆記——子元件向父元件傳遞資料
Vue專案中經常使用到元件之間的數值傳遞,實現的方法很多,但是原理基本上大同小異。 子元件向父元件出傳遞資料,使用自定義事件的方式。 父元件向子元件傳遞資料,使用props屬性的方式。 一、在子元件中自定義事件 我們可以從子元件中想父元件中傳遞多個數據,在子
vue 父元件呼叫子元件方法和子元件呼叫父元件方法
子元件: methods:{ //一開始載入基礎資訊資料 _basicInfo(){ let self = this; self.titleExplain=[];
React 父子元件之間資料傳遞
一、父元件向子元件傳值 父元件通過屬性的方式向子元件傳值,子元件通過函式回撥的方式向父元件傳值。 案例一: 父元件: <PageTitle title="測試頁面標題" /> 子元件: <div>{this.props.title}&l
什麼是VUE的父元件和子元件?那麼父元件和子元件又是怎麼傳值的呢?
有時候我們經常分不清什麼是父元件,什麼又是子元件。現在來簡單說下:我們將某段程式碼封裝成一個元件,而這個元件又在另一個元件中引入,而引入該封裝的元件的檔案叫做父元件,被引入的元件叫做子元件。以上是我個人的理解含義,那麼現在就直接上程式碼吧! 子元件: <templa
vue元件,父元件與子元件之間通訊
vue元件,元件是一個可複用的功能模組,即將具有相同功能的模組抽取成一個元件,在需要的地方引用即可,這體現了程式碼封裝的思想,下面看一下元件是如何實現: // 定義一個名為 button-counter 的新元件 Vue.component('button-counter',