React Native之函式作為引數傳遞給另外一個函式去呼叫
阿新 • • 發佈:2018-11-06
1 用法
我們一般喜歡把js裡面的函式作為引數傳遞給另外一個函式,然後再呼叫這個函式,有點像C語言裡面的函式指標
2 程式碼測試
寫了一個函式,2個引數分別是函式,然後更具資料決定呼叫哪個函式
/** * Sample React Native App * https://github.com/facebook/react-native * * @format * @flow */ import React, {Component} from 'react'; import {Platform, StyleSheet, Text, View, NativeModules} from 'react-native'; const instructions = Platform.select({ ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu', android: 'Double tap R on your keyboard to reload,\n' + 'Shake or press menu button for dev menu', }); export default class App extends Component<Props> { constructor(props){ super(props); this.state={ myName:'chenzixuan', } } componentDidMount() { this.load((name) => {console.log(name);}, (name) => {console.log(name); console.log(name);}); } render() { return ( <View style={styles.container}> <Text onPress={()=> this._androidShowMsg()} style={styles.welcome}>Welcome to React Native!</Text> <Text style={styles.instructions}>To get started, edit App.js</Text> <Text style={styles.instructions}>{instructions}</Text> <Text style={styles.instructions}>{this.state.myName}</Text> </View> ); } load = (resolve, callback) => { let name = this.state.myName; if (name === 'chenzi1xuan') { resolve(name); } else { callback(name); } }; } const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, welcome: { fontSize: 20, textAlign: 'center', margin: 10, }, instructions: { textAlign: 'center', color: '#333333', marginBottom: 5, }, });
3 結果列印如下
很明顯,我們會調第二個引數的函式,所以日誌會列印兩次name,日誌如下
ReactNativeJS I Running application "pro_react" with appParams: {"rootTag":1}. __DEV__ === false, development-level warning are OFF, performance optimizations are ON I chenzixuan I chenzixuan