是否有API可为所有react-toastify类名添加唯一前缀?
问题描述
当前开发的组件库底层依赖 react-toastify v7 版本,而接入该组件库的上层应用使用 react-toastify v8 版本。两个版本的类名完全一致,但样式定义存在差异,直接导致Toast组件UI显示异常。
两个版本的核心样式差异对比如下:
// v8.0.1 版本样式 .Toastify__toast-body { margin: auto 0; -ms-flex: 1 1 auto; flex: 1 1 auto; padding: 6px; display: -ms-flexbox; display: flex; // v8新增样式 -ms-flex-align: center; align-items: center; // v8新增样式 } // v7.0.4 版本样式 .Toastify__toast-body { margin: auto 0; -ms-flex: 1 1 auto; flex: 1 1 auto; padding: 6px; }
不可行方案说明
- 官方未提供给所有
react-toastify类名添加唯一前缀、实现样式隔离的API,无法通过原生配置实现样式隔离。 - 统一将组件库依赖的
react-toastify升级到v8不具备可行性:接入组件库的上层应用数量较多,无法提前预知所有使用者会采用哪个版本的依赖。
临时落地解决方案
通过给Toast配置项的 bodyClassName 绑定自定义样式,强制覆盖v8版本中存在冲突的CSS属性,覆盖代码如下:
{ padding: '0', display: 'block', }
内容的提问来源于stack exchange,提问作者Kirill Poddubnyi
相关产品推荐
相关产品推荐

