Задачи для решения

На стейты

Дан следующий стейт:

this.state = {name: 'Иван', age: 25};

Сделайте так, чтобы метод render вывел на экран следующее ('Иван' и 25 должны взяться из стейта):

<div>
	имя: Иван, возраст: 25
</div>

Решение:

class App extends React.Component {
	constructor() {
		super();
		this.state = {name: 'Иван', age: 25};
	}

	render() {
		return <div>
			имя: {this.state.name}, возраст: {this.state.age}
		</div>;
	}
}

На события

Сделайте кнопочку, по нажатию на которую сработает метод showMessage и на экран алертом выведется сообщение с текстом 'hello'.

Решение:

class App extends React.Component {
	showMessage() {
		alert('hello');
	}

	render() {
		return <button onClick={this.showMessage}>
			нажми на меня
		</button>;
	}
}

Дан следующий стейт:

this.state = {name: 'Иван', age: 25};

Сделайте кнопочку, по нажатию на которую сработает метод showName и на экран алертом выведется имя пользователя из стейта.

Решение:

class App extends React.Component {
	constructor() {
		super();
		this.state = {name: 'Иван', age: 25};
	}

	showName() {
		alert(this.state.name);
	}

	render() {
		return <button onClick={this.showName.bind(this)}>
			нажми на меня
		</button>;
	}
}

На setState

Дан следующий стейт:

this.state = {name: 'Иван', age: 25};

Изначально метод render выводит на экран следующее:

<div>
	имя: Иван, возраст: 25
</div>

Сделайте кнопочку, по нажатию на которую 'Иван' поменяется на 'Коля', а 25 поменяется на 30.

Решение:

class App extends React.Component {
	constructor() {
		super();
		this.state = {name: 'Иван', age: 25};
	}

	changeUser() {
		this.setState({name: 'Коля', age: 30});
	}

	render() {
		return <div>
			<p>имя: {this.state.name}, возраст: {this.state.age}</p>
			<button onClick={this.changeUser.bind(this)}>
				нажми на меня
			</button>
		</div>
	}
}