{"id":6021,"date":"2020-06-02T15:36:27","date_gmt":"2020-06-02T10:06:27","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=6021"},"modified":"2020-06-05T16:08:06","modified_gmt":"2020-06-05T10:38:06","slug":"understanding-error-boundaries-in-react-js-2","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/","title":{"rendered":"Understanding Error Boundaries In React Js"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">It is a new feature of React Js introduced in version16. This concept is used for handling UI errors which we face. Before version 16 there is no concept to handle this type of issue, we use try\u2026 catch\u2026 for handling.\u00a0\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When an error occurs in our app our complete app will crash and our browser shows a white blank screen. Error boundary is part of the React lifecycle method and will be used to catch errors and generate meaningful information to users. We can use it as an error reporting service for our app.<\/span><\/p>\n<p><b>How error boundaries work in the react lifecycle?<\/b><\/p>\n<p><span style=\"font-weight: 400;\">In React JS , We can make\u00a0 a class component treat like a error boundary by using two methods\u00a0<\/span><\/p>\n<p><b>static getDerivedStateFromError() or componentDidCatch() . <\/b><span style=\"font-weight: 400;\">We can also use both together<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For creating error boundary in React Component\u00a0<\/span><\/p>\n<p><b style=\"font-size: 1rem;\">static getDerivedStateFromError() :-\u00a0 <\/b><span style=\"font-weight: 400;\">It is<\/span> <span style=\"font-weight: 400;\">used for handling UI error after the error has been thrown.<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><b>componentDidCatch() :- <\/b><span style=\"font-weight: 400;\">It <\/span><b>\u00a0<\/b><span style=\"font-weight: 400;\">is used for rendering error information<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">We can use only <\/span><b>componentDidCatch() <\/b><span style=\"font-weight: 400;\">to handle UI error and create error reporting for our app.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Implementing error boundary in react : &#8211;<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\">Create a new project with below command,<\/span><\/li>\n<\/ol>\n<pre class=\"lang:default decode:true\">\u00a0=&gt;\u00a0 npx create-react-app errorboundry-demo<\/pre>\n<p><span style=\"font-weight: 400;\">2. Create file Home.js in src with below code\u00a0<\/span><\/p>\n<pre class=\"lang:js decode:true \">import React from 'react';\r\nimport Test from '.\/Test';\r\n \r\nclass Home extends React.Component {\r\n \r\n    state={\r\n        hasError:false,\r\n        error:null,\r\n        errorInfo:null\r\n    }\r\n \r\n    static getDerivedStateFromError() {\r\n        return { hasError: true }\r\n    }\r\n \r\n    componentDidCatch(error, info) {\r\n         this.setState({ error: error, errorInfo:info})\r\n     }\r\n     \r\n \r\n    render() {\r\n        if(this.state.hasError) {\r\n            return &lt;div&gt;Sorry,Something went wrong!&lt;\/div&gt;\r\n          }\r\n          return(\r\n              &lt;div&gt;\r\n                &lt;Test {...this.props} \/&gt;\r\n              &lt;\/div&gt;\r\n          )\r\n \r\n    }\r\n}\r\n \r\nexport default Home;\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">3. Create Test.js file in src folder with below code<\/span><\/p>\n<pre class=\"lang:default decode:true \">import React from 'react';\r\n \r\nconst Test = props =&gt; {\r\n    return(\r\n        &lt;div&gt;{props.name.toString()}&lt;\/div&gt;\r\n    )\r\n}\r\n \r\nexport default Test\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">4. Import Test.js in Home.js\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">5. Import Home.js in app.js with below code<\/span><\/p>\n<pre class=\"lang:default decode:true \">import React from 'react';\r\nimport Home from '.\/Home';\r\n \r\nfunction App() {\r\n  return (\r\n    &lt;div className=\"App\"&gt;\r\n      &lt;h1 style={{color: 'red'}}&gt;Showing Error Info&lt;\/h1&gt;\r\n      &lt;Home \/&gt;\r\n    &lt;\/div&gt;\r\n  );\r\n}\r\n \r\nexport default App;\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">6. Go to the terminal and start the project with <\/span><b>npm start, <\/b><span style=\"font-weight: 400;\">after the project starts we will get<\/span><\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-6022 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/MobileAppDevelopmentAgencyUK.png\" alt=\"\" width=\"1074\" height=\"436\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/MobileAppDevelopmentAgencyUK.png 1074w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/MobileAppDevelopmentAgencyUK-300x122.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/MobileAppDevelopmentAgencyUK-768x312.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/MobileAppDevelopmentAgencyUK-1024x416.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/MobileAppDevelopmentAgencyUK-624x253.png 624w\" sizes=\"(max-width: 1074px) 100vw, 1074px\" \/><\/p>\n<p>Projects created with create-react-app have built-in error reporting, when we are in development mode error reporting and error boundaries both appear in runtime. But in production, it only shows error boundaries in case of any error. When we create projects using create-react-app command it overlaps the error boundary by its own error reporting layout.<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-6023 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/WebDesignAgencyUK.png\" alt=\"\" width=\"796\" height=\"280\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/WebDesignAgencyUK.png 796w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/WebDesignAgencyUK-300x106.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/WebDesignAgencyUK-768x270.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/WebDesignAgencyUK-624x219.png 624w\" sizes=\"(max-width: 796px) 100vw, 796px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">To see the actual error we have to close the create-react-app default reporting layout as shown below<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-6024 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/SoftwareDevelopmentAgencyUK.png\" alt=\"\" width=\"1096\" height=\"317\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/SoftwareDevelopmentAgencyUK.png 1096w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/SoftwareDevelopmentAgencyUK-300x87.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/SoftwareDevelopmentAgencyUK-768x222.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/SoftwareDevelopmentAgencyUK-1024x296.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/06\/SoftwareDevelopmentAgencyUK-624x180.png 624w\" sizes=\"(max-width: 1096px) 100vw, 1096px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">If we create a project without using create-react-app or any boilerplate without any error reporting tool we will get above output directly by running the project.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If we want to see only error boundary in projects created using create-react-app we need to create production build which will automatically remove error reporting layout and shows only error boundary\u00a0<\/span><\/p>\n<p><strong>You can also read our below blog on React:<\/strong><\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/working-of-react-portals\/\">Working of React Portals<\/a><\/p>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/mobx-in-react\/\">MobX in React<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Thanks for giving your valuable time. Keep reading and keep learning<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It is a new feature of React Js introduced in version16. This concept is used for handling UI errors which we face. Before version 16 there is no concept to handle this type of issue, we use try\u2026 catch\u2026 for handling.\u00a0\u00a0 When an error occurs in our app our complete app will crash and our [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5994,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[108,360,71,257,258],"tags":[],"class_list":["post-6021","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-html5-css-js","category-javascript","category-mobile","category-react","category-web-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Understanding Error Boundaries In React Js - InnovationM - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding Error Boundaries In React Js - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"It is a new feature of React Js introduced in version16. This concept is used for handling UI errors which we face. Before version 16 there is no concept to handle this type of issue, we use try\u2026 catch\u2026 for handling.\u00a0\u00a0 When an error occurs in our app our complete app will crash and our [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-02T10:06:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-05T10:38:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/React-Boundaries.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1141\" \/>\n\t<meta property=\"og:image:height\" content=\"634\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Understanding Error Boundaries In React Js\",\"datePublished\":\"2020-06-02T10:06:27+00:00\",\"dateModified\":\"2020-06-05T10:38:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/\"},\"wordCount\":408,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/React-Boundaries.png\",\"articleSection\":[\"HTML5 \\\/ CSS \\\/ JS\",\"JavaScript\",\"Mobile\",\"React\",\"Web Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/\",\"name\":\"Understanding Error Boundaries In React Js - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/React-Boundaries.png\",\"datePublished\":\"2020-06-02T10:06:27+00:00\",\"dateModified\":\"2020-06-05T10:38:06+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/React-Boundaries.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/React-Boundaries.png\",\"width\":1141,\"height\":634},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/understanding-error-boundaries-in-react-js-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding Error Boundaries In React Js\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Understanding Error Boundaries In React Js - InnovationM - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/","og_locale":"en_US","og_type":"article","og_title":"Understanding Error Boundaries In React Js - InnovationM - Blog","og_description":"It is a new feature of React Js introduced in version16. This concept is used for handling UI errors which we face. Before version 16 there is no concept to handle this type of issue, we use try\u2026 catch\u2026 for handling.\u00a0\u00a0 When an error occurs in our app our complete app will crash and our [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/","og_site_name":"InnovationM - Blog","article_published_time":"2020-06-02T10:06:27+00:00","article_modified_time":"2020-06-05T10:38:06+00:00","og_image":[{"width":1141,"height":634,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/React-Boundaries.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Understanding Error Boundaries In React Js","datePublished":"2020-06-02T10:06:27+00:00","dateModified":"2020-06-05T10:38:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/"},"wordCount":408,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/React-Boundaries.png","articleSection":["HTML5 \/ CSS \/ JS","JavaScript","Mobile","React","Web Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/","url":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/","name":"Understanding Error Boundaries In React Js - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/React-Boundaries.png","datePublished":"2020-06-02T10:06:27+00:00","dateModified":"2020-06-05T10:38:06+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/React-Boundaries.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/React-Boundaries.png","width":1141,"height":634},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/understanding-error-boundaries-in-react-js-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Understanding Error Boundaries In React Js"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=6021"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6021\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/5994"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=6021"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=6021"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=6021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}