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