react-native试玩(27)-上拉菜单API

ActionSheetIOS

方法

  • static showActionSheetWithOptions(options: Object,callback: Function) :显示上拉菜单

  • static showShareActionSheetWithOptions(options: Object,failureCallback: Function,successCallback: Function):显示分享菜单

实例

'use strict';

var React = require('react-native');
var {
  ActionSheetIOS,StyleSheet,Text,View,} = React;

var BUTTONS = [
  'Button Index: 0','Button Index: 1','Button Index: 2','Destruct','Cancel',];
var DESTRUCTIVE_INDEX = 3;
var CANCEL_INDEX = 4;

var ActionSheetExample = React.createClass({
  getinitialState() {
    return {
      clicked: 'none',};
  },render() {
    return (
      <View>
        <Text onPress={this.showActionSheet} style={style.button}>
          Click to show the ActionSheet
        </Text>
        <Text>
          Clicked button at index: "{this.state.clicked}"
        </Text>
      </View>
    );
  },showActionSheet() {
    ActionSheetIOS.showActionSheetWithOptions({
      options: BUTTONS,cancelButtonIndex: CANCEL_INDEX,destructiveButtonIndex: DESTRUCTIVE_INDEX,},(buttonIndex) => {
      this.setState({ clicked: BUTTONS[buttonIndex] });
    });
  }
});

var ShareActionSheetExample = React.createClass({
  getinitialState() {
    return {
      text: ''
    };
  },render() {
    return (
      <View>
        <Text onPress={this.showShareActionSheet} style={style.button}>
          Click to show the Share ActionSheet
        </Text>
        <Text>
          {this.state.text}
        </Text>
      </View>
    );
  },showShareActionSheet() {
    ActionSheetIOS.showShareActionSheetWithOptions({
      url: 'https://code.facebook.com',(error) => {
      console.error(error);
    },(success,method) => {
      var text;
      if (success) {
        text = `Shared via ${method}`;
      } else {
        text = 'You didn\'t share';
      }
      this.setState({text})
    });
  }
});

var style = StyleSheet.create({
  button: {
    marginBottom: 10,fontWeight: '500',}
});

exports.title = 'ActionSheetIOS';
exports.description = 'Interface to show iOS\' action sheets';
exports.examples = [
  {
    title: 'Show Action Sheet',render(): ReactElement { return <ActionSheetExample />; }
  },{
    title: 'Show Share Action Sheet',render(): ReactElement { return <ShareActionSheetExample />; }
  }
];

效果

上拉菜单

分享菜单

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...