Для «законнективания» именнованного компонента в Redux, мы можем использовать функцию connect
из пакета react-redux
. Эта функция позволяет нам связывать компонент с Redux Store, чтобы получать данные из состояния и отправлять действия.
Чтобы «законнектить» компонент, мы должны выполнить несколько шагов:
1. Импортировать функцию connect
из react-redux
:
import { connect } from 'react-redux';
2. Создать функцию mapStateToProps
, которая будет отображать состояние из Redux Store на свойства компонента:
const mapStateToProps = (state) => { return { myData: state.myData }; };
Здесь state
представляет собой текущее состояние Redux Store, и мы можем выбирать только те данные, которые нам нужны. В данном примере мы просто возвращаем myData
из состояния.
3. Создать функцию mapDispatchToProps
, которая будет отображать действия Redux на свойства компонента:
const mapDispatchToProps = (dispatch) => { return { fetchData: () => dispatch(fetchData()) }; };
Здесь dispatch
- это функция, которая отправляет действие в Redux Store. Мы можем создать несколько функций, которые вызывают dispatch
с разными действиями.
4. Законнектить компонент, используя функцию connect
. Оберните компонент в вызов connect
и передайте ему mapStateToProps
и mapDispatchToProps
:
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent);
В этом примере мы связываем наш компонент MyComponent
с Redux Store, чтобы получать myData
из состояния и иметь доступ к действию fetchData
.
5. Теперь компонент связан с Redux Store, и он может получать данные из состояния и отправлять действия:
class MyComponent extends React.Component { componentDidMount() { this.props.fetchData(); } render() { return ( <div> {this.props.myData} </div> ); } }
Здесь мы вызываем fetchData
при монтировании компонента и выводим myData
на экран.
Таким образом, путем "законнективания" именнованного компонента с Redux Store, мы можем получать и отправлять данные, использовать состояние в компоненте и реагировать на изменения в Redux Store.