引入

  1. {
  2. "usingComponents": {
  3. "x-toast": "waft-ui/assembly/toast/toast"
  4. }
  5. }

代码示例

  1. <x-toast></x-toast>
  1. import { Toast, ToastOptions } from "waft-ui";
  2. let toastOptions = new ToastOptions();
  3. toastOptions.message = "提示文字";
  4. toastOptions.type = "info";
  5. toastOptions.duration = 5000
  6. toastOptions.position = "middle"
  7. Toast.show(toastOptions);

组件演示

toast1.png toast2.png

axml

  1. <view class="wrapper" style="background-color:lightblue;">
  2. <view class="test"></view>
  3. <x-nav-bar showArrow="{{true}}" title="测试Toast"></x-nav-bar>
  4. <view class="content">
  5. <x-button type="primary" text="按钮" click="clickToast1Btn"></x-button>
  6. <x-button type="secondary" text="显示toast2" click="clickToast2Btn"></x-button>
  7. <x-button text="显示遮罩层" click="clickOverlayBtn"></x-button>
  8. <x-button type="primary" text="显示dialog" click="clickDialogBtn"></x-button>
  9. <x-toast></x-toast>
  10. <x-overlay show="{{ showOverlay }}" click="clickOverlay">
  11. <view style="height: 50rpx;width: 50rpx;background-color: white;"></view>
  12. </x-overlay>
  13. <x-dialog show="{{ showDialog }}" clickConfirm="clickConfirm" clickCancel="clickCancel" message="是否确认删除?" overlay="{{false}}">
  14. <view slot="title">标题</view>
  15. </x-dialog>
  16. </view>
  17. </view>

css

  1. .wrapper {
  2. width: 100%;
  3. height: 100%;
  4. display: flex;
  5. flex-direction: column;
  6. justify-content: flex-start;
  7. align-items: center;
  8. background-color: #eeeeee;
  9. }
  10. .content{
  11. flex: 1;
  12. display: flex;
  13. flex-direction: column;
  14. justify-content: flex-start;
  15. align-items: center;
  16. padding-top: 30rpx;
  17. }

json

  1. {
  2. "usingComponents": {
  3. "x-nav-bar": "../assembly/nav-bar/nav-bar",
  4. "x-switch": "../assembly/switch/switch",
  5. "x-button": "../assembly/button/button",
  6. "x-slider": "../assembly/slider/slider",
  7. "x-toast": "../assembly/toast/toast",
  8. "x-overlay": "../assembly/overlay/overlay",
  9. "x-card": "../assembly/card/card",
  10. "x-dialog":"../assembly/dialog/dialog"
  11. },
  12. "state": {
  13. "showToast1": false,
  14. "showToast2": false,
  15. "showOverlay": false,
  16. "showDialog": false
  17. }
  18. }

ts

  1. import { Page, Props } from "waft";
  2. import { JSON, JSONObject } from "waft-json";
  3. import { Toast, ToastOptions } from "../../../assembly/toast/toast";
  4. export class ComponentTest extends Page {
  5. constructor(props: Props) {
  6. super(props);
  7. this.addEventListener("clickToast1Btn", (e, target): void => {
  8. // 未测试多个toast同时调用的问题
  9. let toastOptions = new ToastOptions();
  10. toastOptions.message = "测试Toast1";
  11. toastOptions.type = "fail";
  12. // toastOptions.iconURL = "https://gw.alicdn.com/imgextra/i1/O1CN01evbrT81s2JRO3tkra_!!6000000005708-2-tps-200-200.png"
  13. Toast.show(toastOptions);
  14. });
  15. this.addEventListener("clickToast2Btn", (e, target): void => {
  16. let toastOptions = new ToastOptions();
  17. toastOptions.message = "测试Toast2";
  18. toastOptions.type = "info";
  19. toastOptions.duration = 5000;
  20. toastOptions.position = "middle";
  21. Toast.show(toastOptions);
  22. });
  23. this.addEventListener("clickOverlayBtn", (e, target): void => {
  24. (target as ComponentTest).setState(
  25. JSON.parseObject(`{"showOverlay":true}`)
  26. );
  27. console.log("====打开遮罩");
  28. });
  29. this.addEventListener("clickOverlay", (e, target): void => {
  30. (target as ComponentTest).setState(
  31. JSON.parseObject(`{"showOverlay":false}`)
  32. );
  33. console.log("====关闭遮罩");
  34. });
  35. this.addEventListener("clickDialogBtn", (e, target): void => {
  36. console.log("dadsada");
  37. (target as ComponentTest).setState(
  38. JSON.parseObject(`{"showDialog":true}`)
  39. );
  40. });
  41. this.addEventListener("clickConfirm", (e, target): void => {
  42. console.log("****关闭弹窗****");
  43. (target as ComponentTest).setState(
  44. JSON.parseObject(`{"showDialog":false}`)
  45. );
  46. });
  47. this.addEventListener("clickCancel", (e, target): void => {
  48. console.log("****关闭弹窗****");
  49. (target as ComponentTest).setState(
  50. JSON.parseObject(`{"showDialog":false}`)
  51. );
  52. });
  53. }
  54. }

API

  • methods | 方法名 | 参数 | 返回值 | 说明 | | —- | —- | —- | —- | | Toast.show | options | | | | Toast.warning | message | | | | Toast.success | message | | | | Toast.fail | message | | |

  • Options | 参数 | 说明 | 类型 | 默认值 | | —- | —- | —- | —- | | type | 提示类型 | string | | | position | 提示位置 | string | | | message | 提示内容 | string | | | duration | 展示时长(ms) | number | 2000 | | icon | 图标url地址 | string | |