состояние, полученное mapStateToProps в Redux - PullRequest
0 голосов
/ 25 мая 2020

Когда мы подключаем компонент-контейнер к Redux Store и записываем mapStateToProps в компонент-контейнер.

const mapStateToProps = (state) => {
  //Access state here  
};

Является ли состояние, которое получает mapStateToProps, полным состоянием хранилища или какой-то частью состояния хранилища, которое требуется только этому компоненту контейнера?

Каждый ли компонент контейнера получает полное состояние хранилища?

Ответы [ 3 ]

1 голос
/ 25 мая 2020

Redux имеет строгий набор принципов, таких как Хранилище является единственным источником истины . Так что да, когда вы подключаете компонент к хранилищу Redux с помощью mapStateToProps, у вас есть доступ к полному объекту состояния. но именно вы решаете, какая часть состояния нужна компоненту.

Например, в вашем магазине есть редуктор inventory и редуктор cart, оба из которых имеют массив items как государственное значение. В mapStatetoProps у вас есть доступ к обоим состояниям редукторов, но вы сами решаете, что нужно вашему компоненту. Вы можете подключиться к state.cart.items или state.inventory.items или к обоим, если хотите.

const mapStateToProps = (state) => ({
    // it is you who decides what your component need from the store in order to function
    // you can only select state.cart.items or state.inventory.items or both if you need
    cartItems: state.cart.items,
    inventoryItems: state.inventory.items 

});

1 голос
/ 25 мая 2020

« store », который вы передали в параметре store в провайдере, будет доступен для вашего компонента приложения и его дочернего компонента.

<Provider store={store}>
    <App />
</Provider>

Поскольку мы передали весь магазин нашему провайдеру, все состояние автоматически передается всем дочерним компонентам компонента приложения.

Чтобы настроить другого поставщика с разными хранилищами, вы можете выполнить следующие действия

Как настроить несколько поставщиков с разными хранилищами?

0 голосов
/ 23 июля 2020

mapStateToProps - это метод библиотеки react-redux, который связывает компоненты реакции с хранилищем redux. при загрузке данных root редуктор объединяет состояние всех редукторов и возвращает объект mapStateToProps (состояние), так что да, mapStateToProps получает полное состояние хранилища редукторов.

...