Fix Uncaught Error Objects are not valid as a React child

By

Published · Updated

Tagged: React

Fix React's Objects are not valid as a React child error by rendering a property or list instead of passing a plain object to JSX.

This error might happen because you’ve got a React component and you’re rendering a prop in the JSX, like this, but you forgot to destructure the prop when initializing the component parameters:

function MyComponent(test) {
  return <p>{test}</p>
}

You should do this instead:

function MyComponent({ test }) {
  return <p>{test}</p>
}

The component receives a props object and we commonly use object destructuring to get the props “mapped” to variables, like {test} in our example.

The same error appears whenever JSX receives a plain object:

const user = { name: 'Flavio' }

return <p>{user}</p> // error

Render a property instead:

return <p>{user.name}</p>

For an array of objects, use map() and return an element with a stable key. JSON.stringify(value) can be useful while debugging, but it is rarely the right user interface.

Want me to talk about your product? You can sponsor this site.

Related posts about react: