youzan / vant

A lightweight, customizable Vue UI library for mobile web apps.
https://vant.pro/vant/
MIT License
23.26k stars 9.49k forks source link

[Bug Report] Uploader 文件上传组件设置capture为camera后:after-read不生效, #6939

Closed ymmagic closed 4 years ago

ymmagic commented 4 years ago

设备 / 浏览器

iphone11

Vant 版本

2.10.0-beta.4

Vue 版本

3.0.0-rc.5

重现链接

https://codepen.io/MingEric/pen/GRZRNep?__cf_chl_jschl_tk__=ebe4e272393115f68ccb267ac2906bf157dd0f3b-1596603444-0-AZmSwCfdaLYPOO_zHaw3FLG9piiAcJAgywG0-02KCdSZ3XTIqbjpSpW6R7xT-Kj-OqJc9UxW2dzm_SBRBrJuO7XShZp_i4KsX4qGXZ8pGKBMqYBLAhpHYL82psoaH7zHl4kc-G1rs38qGVvE3vpeIYCiS2Fh8_PWu3mBpxjwI4N584h185LsVblqjqShoa54ksHfJXKrixQumfjW6LZmgJBufCAyzJrx5G-ATp_kZ8-VVgvRhmn7hqxrs3fuMT7QA6H7YhSXjsWfiFlN44UeoxLiq0s_NAl0d9RKRX2b9E9nmZYr4pSekJ28gEjPOIu2JgHIu3MSSVpbxQVOAab_cbk

描述问题

使用Uploader 文件上传组件,设置capture为camera后:after-read,before-read都不生效

chenjiahan commented 4 years ago

before-read 是触发了的,before-read 要返回 true 才会触发 after-read,请仔细看文档。

methods: {
    beforeRead(file) {
      document.body.insertAdjacentHTML('afterbegin', 'beforeRead');
      return true;
    },
    afterRead(file) {
      console.log('afterRead');
      document.body.insertAdjacentHTML('afterbegin', 'afterRead');
    },
  },
ymmagic commented 4 years ago

我在我的项目代码beforeRead这个方法里写了return true,但是afterRead还是没触发,但是如果不加capture 为camera就都可以触发

ymmagic commented 4 years ago

https://codepen.io/MingEric/pen/GRZRNep?editors=1010,这个是新的地址

chenjiahan commented 4 years ago

alert 不触发是有可能的,不代表 before-read 没触发。

alert 会受到系统的限制