You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用react-img-mapper时浏览器不显示图片仅展示空白页

react-img-mapper 渲染空白页修复方案

问题根因

  • 项目同时安装了命名高度相似的react-image-mapper@0.0.15(已废弃的旧包)和react-img-mapper@1.4.0(当前维护版本),存在导入冲突风险
  • react-img-mapper@1.4.0在React 18环境下,初始渲染阶段默认的图片尺寸自动计算逻辑存在兼容问题,未获取到尺寸时会渲染0宽高节点,直接表现为页面空白
  • 代码中热区的fillColor值缺少十六进制颜色前缀#,会导致canvas绘制热区时颜色解析失败,不过该问题不会引发整体渲染空白

修复操作

  1. 卸载冲突的废弃依赖包
npm uninstall react-image-mapper
# yarn用户执行对应命令即可
yarn remove react-image-mapper
  1. 调整组件代码,显式传入图片宽高、开启响应式配置,补全颜色值前缀
import React from 'react';
import ImageMapper from 'react-img-mapper';
import "../assets/style.css";

function AreaOperation() {
  const imgUrl = 'https://raw.githubusercontent.com/img-mapper/react-docs/master/src/assets/example.jpg';
  const mapConfig = {
    name: 'my-map',
    areas: [
      {
        id: "469f9800-c45a-483f-b13e-bd24f3fb79f4",
        active: true,
        title: "Hardwood",
        shape: "poly",
        name: "BB(1-4)",
        fillColor: "#eab54d4d", // 补全十六进制颜色#前缀
        strokeColor: "black",
        coords: [
          520.0646766169153,
          393.0348258706467,
          85.23880597014923,
          378.6069651741293,
          637,
          479,
          13.099502487562177,
          478.10945273631836,
          11.606965174129343,
          438.3084577114427
        ]
      }
    ]
  };
  
  return (
    <ImageMapper 
      src={imgUrl} 
      map={mapConfig}
      width={640} // 显式传入示例图实际宽度
      height={480} // 显式传入示例图实际高度
      responsive={true} // 开启容器宽度自适应
    />
  )
}

export default AreaOperation;
  1. 检查全局样式、引入的style.css文件,确认没有给组件生成的img、canvas、外层容器标签设置display: none、0宽高、透明度为0的强制样式。

若以上操作完成后仍存在空白,可检查React 18严格模式的双执行影响,给ImageMapper组件添加固定key属性强制单次渲染即可。

内容的提问来源于stack exchange,提问作者Abhishek Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:18:16