1- import { Fragment , useState , useEffect } from 'react' ;
1+ import { Fragment , useState , useMemo } from 'react' ;
22import { JsonForms } from '@jsonforms/react' ;
33import Grid from '@mui/material/Grid' ;
44import Button from '@mui/material/Button' ;
@@ -57,15 +57,11 @@ const renderers = [
5757
5858const App = ( ) => {
5959 const classes = useStyles ( ) ;
60- const [ displayDataAsString , setDisplayDataAsString ] = useState ( '' ) ;
61- const [ jsonformsData , setJsonformsData ] = useState < any > ( initialData ) ;
62-
63- useEffect ( ( ) => {
64- setDisplayDataAsString ( JSON . stringify ( jsonformsData , null , 2 ) ) ;
65- } , [ jsonformsData ] ) ;
60+ const [ data , setData ] = useState < any > ( initialData ) ;
61+ const stringifiedData = useMemo ( ( ) => JSON . stringify ( data , null , 2 ) , [ data ] ) ;
6662
6763 const clearData = ( ) => {
68- setJsonformsData ( { } ) ;
64+ setData ( { } ) ;
6965 } ;
7066
7167 return (
@@ -89,7 +85,7 @@ const App = () => {
8985 Bound data
9086 </ Typography >
9187 < div className = { classes . dataContent } >
92- < pre id = 'boundData' > { displayDataAsString } </ pre >
88+ < pre id = 'boundData' > { stringifiedData } </ pre >
9389 </ div >
9490 < Button
9591 className = { classes . resetButton }
@@ -108,10 +104,10 @@ const App = () => {
108104 < JsonForms
109105 schema = { schema }
110106 uischema = { uischema }
111- data = { jsonformsData }
107+ data = { data }
112108 renderers = { renderers }
113109 cells = { materialCells }
114- onChange = { ( { errors, data } ) => setJsonformsData ( data ) }
110+ onChange = { ( { errors, data } ) => setData ( data ) }
115111 />
116112 </ div >
117113 </ Grid >
0 commit comments