1、查阅资料,导师封装了这个组件

import React, { useCallback, useEffect, useRef } from 'react';
import _ from 'lodash';
import JSONEditor from 'jsoneditor';
import 'jsoneditor/dist/jsoneditor.css';import styles from './index.less';const SMJsonEditor = props => {const { value, onChange, options = {} } = props;const editorRef = useRef();const editorObj = useRef();// 注意这边暴露到外面的是一个jsonconst handleChange = useCallback(value => {try {const currenValue = value === '' ? null : editorObj.current.get();onChange && onChange(currenValue);} catch (err) {}},[onChange]);// 初始化JSON编辑器const initEditor = useCallback(() => {if (!editorObj.current) {const totalOptions = {mode: 'code',onChangeText: handleChange,...options,};editorObj.current = new JSONEditor(editorRef.current, totalOptions);}}, [handleChange, options]);useEffect(() => {initEditor();}, [initEditor]);// 监听外部传入的valueuseEffect(() => {try {if (value && !_.isEqual(editorObj.current.get(), value)) {editorObj.current.update(value);}} catch (error) {// 当编辑器内容为空时,editorObj.current.get()会抛出异常,所以这里需要捕获}}, [value]);return <div className={styles['sm-json-editor']} ref={editorRef} />;
};export default SMJsonEditor;

2、样式文件,(当然你的可以不用加:global(),普通写就可以了,我这里是项目原因要这样写)

.sm-json-editor {width: 70%;padding: 0;// 这句是必要的,是要解决一个样式的Bug:global(.ace-jsoneditor) {font-size: 12px !important;}:global(.jsoneditor-menu) {display: none;}:global(.jsoneditor-navigation-bar) {display: none;}:global(.jsoneditor-outer.has-nav-bar.has-main-menu-bar) {margin-top: 0;padding-top: 0;}
}

3.要使用这个组件直接引入就可以了

React中使用jsoneditor相关推荐

  1. 处理 react_【学习教程】React 中阻止事件冒泡的问题

    来源 | https://www.cnblogs.com/Wayou/p/react_event_issue.html 在正式开始前,先来看看 js 中事件的触发与事件处理器的执行. js 中事件的监 ...

  2. react中ref的使用

    在react中获取真实dom的时候就需要用到ref属性,具体使用如下 var MyComponent = React.createClass({handleClick: function() {con ...

  3. react中使用构建缓存_如何在React中构建热图

    react中使用构建缓存 Heat maps are a great way of visualizing correlations among two data sets.  With colors ...

  4. react中使用构建缓存_通过构建海滩度假胜地网站,了解如何使用React,Contentful和Netlify...

    react中使用构建缓存 In this full course from John Smilga you will learn React by building a beach resort we ...

  5. 创建react应用程序_通过创建食谱应用程序来学习在React中使用API

    创建react应用程序 Learn how to use external APIs with React and React Router in a full tutorial from Hamza ...

  6. react中纯函数_如何在纯React中创建电子邮件芯片

    react中纯函数 by Andreas Remdt 由Andreas Remdt 如何在纯React中创建电子邮件芯片 (How to create email chips in pure Reac ...

  7. 如何在React中使用Typescript

    TypeScript can be very helpful to React developers. TypeScript对React开发人员可能非常有帮助. In this video, Ben ...

  8. react中使用scss_我如何将CSS模块和SCSS集成到我的React应用程序中

    react中使用scss by Max Goh 由Max Goh 我如何将CSS模块和SCSS集成到我的React应用程序中 (How I integrated CSS Modules with SC ...

  9. React 中动态的加载组件 ---loadable-components

    loadable-components 用于在react 中动态的加载组件 安装方法: npm i loadable-components 使用: 引入: 代码中使用: 希望对你有所帮助

  10. boost::unorder_map如何插入元素_「React」如何在React中优雅的实现动画

    最简单的动画组件实现 动画的本质,无非就是一个状态样式到另一个状态样式的过渡.最简单的动画组件,我们只需要指定两个状态的样式(进入的样式,离开的样式),以及一个开关(控制状态),即可完成. codep ...

最新文章

  1. Linux简介(一)
  2. 申论万用句型——背下来
  3. 电脑任务管理器快捷键_电脑知识小常识
  4. Jquery导航条淡进淡出相册(动态无刷新加载数据库数据)
  5. 金山云笔试题:AKM函数
  6. mybatis---知识点复习
  7. 基础 - 常见字符的ASCII码
  8. 如何降低软件项目的风险 -- 包括客户的风险,软件提供商的风险
  9. 一个简单小说阅读网页html,简单版小说搜索阅读(64位程序)
  10. Unity轻松制作俯视角游戏插件TopDown Engine
  11. Python语音识别终极指北,没错,就是指北!
  12. c语言字符串逆序输出reverse,将一个字符串逆序输出
  13. csv文件修改编码格式
  14. 什么是kick-off meeting?
  15. frida 挂钩_您必须知道的预提交挂钩
  16. 发送验证码-阿里云短信服务
  17. 数据结构课设任务内容
  18. 对未来计算机网络的展望作文300,2017年关于网络的300字作文篇我与网络
  19. 录用率48%到68%! I3D/ICDAR/CogSci/ICIP2023即将截稿
  20. 英文外链的质量和数量哪个更重要

热门文章

  1. java 加入环境变量_JAVA添加环境变量
  2. 2003-2007回顾贴:yeguiren个人随笔
  3. Android与51822蓝牙模块通信流程的实现与分析
  4. 阮一峰ES6学习笔记(1)
  5. 【Unity3D进阶4-8】Unity3D 游戏框架
  6. PLC编程入门基础知识
  7. 小程序开发视频教程免费下载
  8. redis 中 epoll 模型 ~ 霓裳
  9. SONY SVP1322 笔记本电脑升级
  10. 登录SYSTEM账户 Windows黑科技 首创方法 教程附源码(c++)