@uiw/react-json-view 如何修改文本省略号、null节点、数组节点等

如何修改

  1. 当文本超过设置shortenTextAfterLength数值时,会显示...,可以通过新版本的参数 stringEllipsis来修改(ts类型不对可忽略),低版本可尝试修改JsonView.Ellipsis
  2. 当传入的数组值为null时(比如{a:null}),该组件值为空白,可通过自定义JsonView.Null修改
  3. 默认的数组显示,会显示索引+分号(比如0:'数组值'),可通过自定义JsonView.KeyName修改key,通过JsonView.Colon修改分号
js 复制代码
      <JsonView
        value={json}
        displayDataTypes={false}
        displayObjectSize={false}
        enableClipboard={false}
        collapsed={false}
        shortenTextAfterLength={5}
        stringEllipsis={'...显示更多'}
      >
        <JsonView.Null
          render={(props, result) => {
            if (result.value === null) {
              return <span {...props}>{result.value + ''}</span>
            }
          }}
        />
        <JsonView.KeyName
          render={(props, result) => {
            //数组不显示对应的索引
            if (Array.isArray(result.parentValue)) {
              return (
                <span {...props} style={{ ...props.style, display: 'none' }}>
                  {result.keyName}
                </span>
              )
            }
          }}
        />
        <JsonView.Colon
          render={(props, result) => {
            //数组不显示对应的分号 :
            if (Array.isArray(result.parentValue)) {
              return (
                <span {...props} style={{ ...props.style, display: 'none' }}>
                  :
                </span>
              )
            }
          }}
        />
      </JsonView>
  )

效果

当传入数据为'{"a":null, "b": ["val1","val2"]}'

修改前

修改后

相关推荐
小陈工5 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
xiaotao1319 小时前
第九章:Vite API 参考手册
前端·vite·前端打包
午安~婉10 小时前
Electron桌面应用聊天(续)
前端·javascript·electron
彧翎Pro10 小时前
基于 RO1 noetic 配置 robosense Helios 32(速腾) & xsense mti 300
前端·jvm
小码哥_常10 小时前
解锁系统设置新姿势:Activity嵌入全解析
前端
之歆11 小时前
前端存储方案对比:Cookie-Session-LocalStorage-IndexedDB
前端
哟哟耶耶11 小时前
vue3-单文件组件css功能(:deep,:slotted,:global,useCssModule,v-bind)
前端·javascript·css
是罐装可乐11 小时前
深入理解“句柄(Handle)“:从浏览器安全到文件系统访问
前端·javascript·安全
华科易迅11 小时前
Vue如何集成封装Axios
前端·javascript·vue.js
康一夏11 小时前
Next.js 13变化有多大?
前端·react·nextjs