收藏
回答

为什么无法渲染这个URL?

如下图,我是用的组件是vant weapp.然后遇到问题就是无法把这个src的URL弄出来

    <van-grid column-num="2" gutter="{{ 20 }}">
      <van-grid-item wx:for="{{ fileList }}" wx:key="name" use-slot>
        <view>
          <image style="width: 100%; height: 90px;" src="{{ getFileIcon(item.name) }}" />
          <text>{{ item.name }}</text>
        </view>
      </van-grid-item>
    </van-grid>

上面是wxml代码.亲测把那个 src="{{ getFileIcon(item.name) }}" 改成正确的URL可以请求到图片

下面是JS代码

import {HOST} from '../../utils/http'


Page({
    data:{
        HOST:HOST,
        fileList: [
            { name'img.png' },
            { name'okk.zip' }
          ]
    },
  getFileIcon(fileName) {
    console.log("执行了一次")
    const HOST = this.data.HOST; // 获取主机地址
    const extension = fileName.split('.').pop().toLowerCase();
    let icon = '';
    switch (extension) {
      case 'zip':
        icon = HOST + 'fileType/zip.png';
        break;
      case 'mp4':
        icon = HOST + 'fileType/video.png';
        break;
      case 'jpg':
      case 'jpeg':
      case 'png':
        icon = HOST + 'fileType/img.png';
        break;
      case 'doc':
      case 'docx':
        icon = HOST + 'fileType/word.png';
        break;
      case 'xlsx':
        icon = HOST + 'fileType/excel.png';
        break;
      case 'pdf':
        icon = HOST + 'fileType/pdf.png';
        break;
      case 'mp3':
        icon = HOST + 'fileType/sound.png';
        break;
      default:
        icon = HOST + 'fileType/project.png'// 默认情况下返回一个通用图标路径
        break;
    }
    return icon;
  }
})

上面的HOST是正确的主机地址,也就是说,其实 HOST + 'fileType/project.png' 这些都是正确的URL,但是这个 src="{{ getFileIcon(item.name) }}" 不知为何就是渲染不出来这个URL.

(嗷对了还有,编译一次页面之后, console.log("执行了一次") 压根儿就没有执行过)

回答关注问题邀请回答
收藏

4 个回答

  • 风清雾散云开见日出
    风清雾散云开见日出
    05-22

    wxml中不能直接调用js的方法,需要你写个wxs,然后在wxs中执行实现你的js方法,再在wxms中引入你的wxs文件,就可以在wxml中调用wxs的js方法了

    05-22
    有用 2
    回复 1
    • 123
      123
      发表于移动端
      05-22
      厉害厉害😂
      05-22
      回复
  • 得鹿梦鱼
    得鹿梦鱼
    05-22

    哈哈,请参考 wxs 写法:

    https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/

    05-22
    有用 1
    回复 2
    • 123
      123
      发表于移动端
      05-22
      大佬受教了
      05-22
      回复
    • 得鹿梦鱼
      得鹿梦鱼
      05-22回复123
      感谢大佬点赞,嘻嘻
      05-22
      回复
  • 那一抹笑😃 穿透阳光
    那一抹笑😃 穿透阳光
    05-22

    wxml里面,不能直接调用js里面的方法,你这个写法就说错误的,你这种,要用wxs

    05-22
    有用 1
    回复 1
    • 123
      123
      发表于移动端
      05-22
      好的好的大佬
      05-22
      回复
  • 大山
    大山
    05-22

    src="{{ getFileIcon(item.name) }}"  此属性的函数改成 js 中去循环 fileList 调用 getFileIcon 重新赋值新变量 url,wxm 中直接调用变量 url。

    05-22
    有用 1
    回复 1
    • 123
      123
      发表于移动端
      05-22
      感谢大佬 我试试
      05-22
      回复
登录 后发表内容