Redux未连接到React Navigation中的所有堆栈

问题描述 投票:2回答:1

我试图在我的一个屏幕中连接我的动作。经过几个小时的摸索,我发现连接不是因为某种原因而“连接”到我的屏幕上。是否有理由在使用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'堆栈。这可能吗?我感到很困惑...

更新 - 我已经找到了解决方案。问题是在我的stacknavigator中我没有导入所有屏幕,因此Redux Store没有意识到它们。因此,只需导入堆栈导航器中的所有屏幕即可解决问题。

react-native react-redux react-navigation
1个回答
0
投票

在使用redux进行状态管理的React应用程序中,您可以轻松访问Provider包装它们的所有子组件中的状态(Store)。

您可以像这样轻松调用您的州:

在reducer文件中:

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)

有关redux的更多信息,您可以看到这个链接:https://redux.js.org/basics/example

© www.soinside.com 2019 - 2024. All rights reserved.