Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Redux: state, usedispatch, useselector

Как подключить React-компонент к Redux-store?

Этот вопрос проверяет понимание того, как связать React-компонент с хранилищем Redux для получения состояния и отправки действий (actions).

Короткий ответ

Чтобы подключить компонент к Redux-store, используется библиотека React Redux. Для получения данных из состояния применяется хук useSelector, а для отправки действий — useDispatch. Эти инструменты позволяют интегрировать Redux-логику в React-компоненты без необходимости дополнительной настройки.

Длинный ответ

Связывание React-компонента с Redux-store осуществляется через библиотеку React Redux, которая предоставляет хуки useSelector и useDispatch.

Шаги для подключения:

Убедитесь, что хранилище Redux передано в приложение через компонент <Provider>:

import { Provider } from 'react-redux';
import { store } from './store';
const App = () => (
	<Provider store={store}>
		<YourComponent />
	</Provider>
);

Используйте useSelector для доступа к состоянию:

import { useSelector } from 'react-redux';
const YourComponent = () => {
	const todos = useSelector((state) => state.todos);
	return (
		<ul>
			{todos.map((todo) => (
				<li key={todo.id}>{todo.text}</li>
			))}
		</ul>
	);
};

Используйте useDispatch для отправки действий:

import { useDispatch } from 'react-redux';
const YourComponent = () => {
	const dispatch = useDispatch();
	const addTodo = () => {
		dispatch({ type: 'ADD_TODO', payload: { text: 'New Task' } });
	};
	return <button onClick={addTodo}>Add Todo</button>;
};

Ключевые аспекты:

  • useSelector: Позволяет "подписаться" на изменения в состоянии Redux и получить его данные.

  • useDispatch: Предоставляет функцию для отправки действий, чтобы изменить состояние.

Альтернативный подход — connect (классический API): В более старых версиях React Redux использовалась функция connect:

import { connect } from 'react-redux';
const mapStateToProps = (state) => ({
	todos: state.todos,
});
const mapDispatchToProps = (dispatch) => ({
	addTodo: () => dispatch({ type: 'ADD_TODO', payload: { text: 'New Task' } }),
});
const YourComponent = ({ todos, addTodo }) => (
	<div>
		<ul>
			{todos.map((todo) => (
				<li key={todo.id}>{todo.text}</li>
			))}
		</ul>
		<button onClick={addTodo}>Add Todo</button>
	</div>
);
export default connect(mapStateToProps, mapDispatchToProps)(YourComponent);

useSelector и useDispatch — это более современный и удобный способ работы с Redux в функциональных компонентах.

Уровень

  • Рейтинг:

    1

  • Сложность:

    3

Навыки

  • Redux

    Redux

Ключевые слова

#state

#usedispatch

#useselector

Подпишись на React Developer в телеграм