小程序: showToast

一个小程序的 showToast 无效问题/一些用法
更新于: 2023-07-10 15:13:30

有icon限制7个字

其它是看不到下面的全文的,因为文字个数已经超过7个了。

wx.showToast({
  title: "已完成答题,看缘分榜喽~",
  icon: "loading",
  duration: 2000,
  success: function () {
    setTimeout(function () {
      wx.redirectTo({
        url: "../my",
      });
    }, 2000);
  },
});

无icon

可显示全部字数,官方: 不显示图标,此时 title 文本最多可显示两行,1.9.0及以上版本支持    

wx.showToast({
  title: "已完成答题,看缘分榜喽~",
  duration: 2000,
  success: function () {
    setTimeout(function () {
      wx.redirectTo({
        url: "../my",
      });
    }, 2000);
  },
});

duration/sucess/fail

API 的设计者,意图表明 success 是单纯的执行成功/失败,这个 success / fail 无联系。

所以,如果要在 duration 之后再进行后面的操作,需要用类似 showToast 实现。

import { sleep } from '@/shared/helpers';

nx.showToast = async function (title, icon = 'none', duration = 2000) {
  wx.showToast({
    title,
    icon,
    duration,
  });

  await sleep(duration);
};

一些不认可的观点

uni.showToast 设定duration不生效的原因:
是 uni.hideLoading();的原因,给他结束了,做一个延迟setTimeout 就可以

参考