Redux не подключается ко всем стекам в React Navigation - PullRequest
2 голосов
/ 21 апреля 2019

Я пытаюсь соединить свои действия на одном из моих экранов в стеке.После нескольких часов бездельничания я понимаю, что соединение по какой-то причине не «соединяется» с моим экраном.Есть ли причина, по которой при использовании React Navigation некоторые экраны подключаются к Redux, а некоторые - нет?

const AppSwitchNavigator = createSwitchNavigator({
  Open: { screen: AuthStackNavigator },
  Home: { screen: MainStackNavigator }
})

const AppContainer = createAppContainer(AppSwitchNavigator)

class App extends Component {
  render() {
    return <Provider store={store}><AppContainer /></Provider>
  }
}

Мне кажется, что у меня есть доступ к магазину в стеке «Home», но не в «Open»стекЭто возможно?Я так растерялся ...

ОБНОВЛЕНИЕ - Я нашел решение.Проблема заключалась в том, что в моем стекавигаторе я не импортировал все экраны, поэтому Redux Store не знал о них.Поэтому простой импорт всех экранов в навигаторе стека устранил проблему.

1 Ответ

0 голосов
/ 21 апреля 2019

В приложении React, которое использует redux для управления состоянием , вы можете легко получить доступ к своему состоянию (Store) во всех подкомпонентах, которые упакован провайдеромих.

Вы можете легко назвать свое состояние следующим образом:

в файле редуктора:

initialState = {
    counter: 0
}

const Reducer = (state=initialState, action) => {
    switch(action.type){
      case(INCREMENT):
        return{
          ...state,
          counter: state.counter + 1
        }
    }
}

export default Reducer

и в своей домашней или открытой странице:

import {connect} from 'react-redux'

----- rest of code -----

const mapStateToProps = state => {
    const counter = state.counter;
    return {counter}
};

export default connect(mapStateToProps)(YoucComponent)

для получения дополнительной информации о редуксе вы можете увидеть эту ссылку: https://redux.js.org/basics/example

...