Alert

Alert 弹窗

Install

  1. npm install beeshell

Usage

  1. import { Alert } from 'beeshell';
  1. import { Alert } from 'beeshell';
  2. // 示例1: 普通
  3. Alert.alert(
  4. '梯田里添加卡利久里',
  5. '梯田里添加卡利久里梯田里添加卡利久里梯田里添加卡利久里梯田里添加卡利久里梯田里添加卡利久里梯田里添加卡利久里',
  6. [{ text: '取消' }, { text: '确认' }],
  7. );
  8. // 示例2: 自定义title和message组件,弱化确认按钮
  9. Alert.alert(
  10. <View><Text>就是不想用默认的样式</Text></View>,
  11. <View><Text>就是不想用默认的样式,或者需要自定义内容:非文字,多段文字等等</Text></View>,
  12. [{ text: '取消' }, { text: '确认', type: 'dark'}],
  13. );
  14. // 示例3: 一个按钮
  15. Alert.alert(
  16. '标题',
  17. '一个按钮一个按钮一个按钮一个按钮一个按钮一个按钮一个按钮',
  18. [{
  19. text: '一个按钮操作',
  20. }],
  21. );
  22. // 示例4: 点击蒙层弹窗消失
  23. Alert.alert(
  24. '',
  25. '点击蒙层弹窗消失,cancelable=true',
  26. [{
  27. text: '取消',
  28. }, {
  29. text: '确认',
  30. }],
  31. { cancelable: true },
  32. );
  33. // 示例5: onPress promise
  34. handleChangeText(text) {
  35. this.setState({ text });
  36. }
  37. // TextInput 不要设置 value参数,不然会导致无法输入新的字符
  38. Alert.alert(
  39. '请输入你的反馈',
  40. <TextInput
  41. style={{ height: 100, backgroundColor: '#f0f0f0', padding: 15 }}
  42. onChangeText={this.handleChangeText}
  43. placeholder={this.state.placeHolder}
  44. multiline
  45. numberOfLines={3}
  46. />,
  47. [
  48. {
  49. text: '取消',
  50. },
  51. {
  52. text: '提交',
  53. onPress: () => new Promise((resolve, reject) => {
  54. // 这里可以判断值也可以调用异步判断
  55. if (this.state.text) {
  56. resolve();
  57. } else {
  58. reject();
  59. }
  60. }),
  61. }
  62. ],
  63. { cancelable: true },
  64. );

API

Alert.alert(title, message, buttons, options);

参数 说明 类型 默认值 备注
title 标题 string 或 element null
message 弹框的主体 string 或 element null
buttons 按钮 array [{ text, type, onPress}] 一个按钮type默认是’dark’,两个按钮分别默认是’default’和’primary’
options 配置项 object {cancelable: false}, cancelable控制点击蒙层是否关闭弹框,默认是false

注意

  • button 按钮实体, { text, type, onPress} 中的 onPress 的返回值如果是一个 ES6 Promise 对象, 只有当你是resolve的时候,组件才会帮你关掉Alert, 不调用或reject的时候什么都不会发生. 详见示例5
  • 如果message 里有TextInput, 请不要设置 value参数,不然会导致无法输入新的字符

Alert.close(); // 关闭弹窗

License

beeshell is released under the MIT license.