--- id: 5a24c314108439a4d4036170 title: Create a Stateful Component challengeType: 6 isRequired: false videoUrl: '' localeTitle: Crear un componente de estado --- ## Description
Uno de los temas más importantes en React es el state . El estado consiste en cualquier información que su aplicación necesite conocer, que puede cambiar con el tiempo. Desea que sus aplicaciones respondan a los cambios de estado y presenten una interfaz de usuario actualizada cuando sea necesario. React ofrece una buena solución para la administración estatal de aplicaciones web modernas. Usted crea el estado en un componente React declarando una propiedad de state en la clase de componente en su constructor . Esto inicializa el componente con el state cuando se crea. La propiedad de state debe establecer en un object JavaScript. Declarándolo se ve así:
this.state = {
// describe tu estado aquí
} Usted tiene acceso al objeto state largo de la vida de su componente. Puede actualizarlo, representarlo en su interfaz de usuario y pasarlo como accesorios a componentes secundarios. El objeto de state puede ser tan complejo o tan simple como lo necesite. Tenga en cuenta que debe crear un componente de clase extendiendo React.Component para crear un state como este.
## Instructions
Hay un componente en el editor de código que intenta representar una propiedad de name desde su state . Sin embargo, no hay un state definido. Inicialice el componente con el state en el constructor y asigne su nombre a una propiedad de name .
## Tests
```yml tests: - text: StatefulComponent debería existir y renderizarse. testString: 'assert((function() { const mockedComponent = Enzyme.mount(React.createElement(StatefulComponent)); return mockedComponent.find("StatefulComponent").length === 1; })(), "StatefulComponent should exist and render.");' - text: StatefulComponent debe representar un elemento div y un elemento h1 . testString: 'assert((function() { const mockedComponent = Enzyme.mount(React.createElement(StatefulComponent)); return mockedComponent.find("div").length === 1 && mockedComponent.find("h1").length === 1; })(), "StatefulComponent should render a div and an h1 element.");' - text: El estado de StatefulComponent debe inicializarse con un name propiedad establecido en una cadena. testString: 'assert((function() { const mockedComponent = Enzyme.mount(React.createElement(StatefulComponent)); const initialState = mockedComponent.state(); return ( typeof initialState === "object" && typeof initialState.name === "string"); })(), "The state of StatefulComponent should be initialized with a property name set to a string.");' - text: El name de la propiedad en el estado de StatefulComponent debe representarse en el elemento h1 . testString: 'assert((function() { const mockedComponent = Enzyme.mount(React.createElement(StatefulComponent)); const initialState = mockedComponent.state(); return mockedComponent.find("h1").text() === initialState.name; })(), "The property name in the state of StatefulComponent should render in the h1 element.");' ```
## Challenge Seed
```jsx class StatefulComponent extends React.Component { constructor(props) { super(props); // initialize state here } render() { return (

{this.state.name}

); } }; ```
### After Test
```js console.info('after the test'); ```
## Solution
```js // solution required ```