最近在一个react前端项目中采用了react-markdown来展示md文档,但是在开发的过程中出现了图片溢出边框的问题,接下来我将详细说明解决该问题过程中,所遇到的坑,以及最新的正确的解决方案
问题描述
当缩小窗口时,展示md内容的div能够随窗口缩放,但是内容里面的图片的尺寸却保持不变。
从而导致图片溢出div的情况,具体情形如下:
全屏(正常情况):
屏幕缩小(图片溢出):
遇到的坑
因为react-markdown没有提供直接对图片style进行修改的接口,只能通过自定义的方式进行修改
在Google上找到了一个解决方案,但是使用的时候发现并没有作用
直到后来看github官方文档才知道版本更新了,之前的属性名称又改了
首先来介绍旧版本的解决方法,也就是我所遇到的坑
https://nkaushik.com/javascript/reactmarkdown-set-imagesize/
解决方案
百思不得其解的时候,我绝望地打开了react-markdown的readme文档
意外地发现根本就没有renderers这个属性
github地址:https://github.com/remarkjs/react-markdown#uritransformer
接着往下翻,我找到了custom示例!!!
很明显,那个不存在的属性renderers已经被components属性替换掉了
仿照示例,修改自己的代码,测试,图片终于变小了!!!
<ReactMarkdown escapeHtml={false} children={props.md} components={{
img(props){
return <img {...props} style={{ maxWidth: '100%'}} />
}
}}/>
至此,react-markdown的图片尺寸问题终于解决。
祝大家生活愉快!