React-Data-Table-component扩展库打印导出功能异常问题求助
React-Data-Table-component-Extension 三类列配置问题解决方案
三个问题的核心诱因是扩展库的打印、导出模块解析逻辑未和主库v7+版本的列配置规则完全对齐,对应问题原因和解决方式如下:
- 函数式selector触发
selector must be a . delimted string eg (my.property)报错:扩展库默认的取值逻辑优先识别字符串格式selector,未做函数式selector兼容,直接传入函数会走旧版校验逻辑抛错 - 字符串selector触发弃用警告:主库v7版本已标记字符串selector为弃用语法、v8版本将正式移除,但扩展库未同步适配新规则,就会出现「用函数式扩展库报错、用字符串主库报警告」的冲突
- 序号列导出/打印显示NaN:序号列未配置selector属性,扩展库执行导出、打印时会尝试通过selector取值,拿不到有效值就会返回NaN,和cell属性里自定义的渲染逻辑不互通
可直接复用的修复配置
给所有列配置唯一id属性,扩展库会优先通过id做字段映射,不会强制校验selector格式,同时不会触发主库的弃用警告;序号列必须补全selector逻辑,保证导出、打印时能正常计算序号:
const columns = [ { name: "No.", // 补全selector,导出打印时按数据索引生成序号,避免NaN selector: (row, index) => index + 1, cell: (row, index) => index + 1, // 配置列唯一id,兼容扩展库解析逻辑 id: "serial_no" }, { name: "username", selector: row => row.username, sortable: true, id: "username" } ]
如果配置后仍有弃用警告,可将react-data-table-component主库版本锁定到7.6.2,这是目前和扩展库适配度最高的稳定版本,不会出现版本兼容导致的额外报错。
内容的提问来源于stack exchange,提问作者Razor Jhon
相关产品推荐
相关产品推荐

