Stacknavigator с редуксом без навигационной стойки в редуксе - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу использовать реактивную навигацию и избыточность в моем приложении, но я не хочу сохранять свойство навигации в состояниях избыточности. Вместо этого я просто хочу перемещаться, как и раньше, но у меня есть и избыточные состояния, я увидел следующий подход, который я реализовал в своем App.js:

const mapStateToProps = state => state;
const mapDispatchToProps = dispatch => dispatch;

// need this Higher Order Component so you can pass properties through the root stack
const AppContainer = connect(mapStateToProps, mapDispatchToProps)(RootStack);

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

но когда я попытался использовать этот подход, я получил

"you must pass a component to the function returned by connect. instead received"

ошибка.

Вот мой StackNavigator:

import { createStackNavigator } from 'react-navigation'
import {HomeScreen} from '../screens/HomeScreen'
import {CardScreen} from '../screens/CardScreen'


const RootStack = createStackNavigator(
    {
        Home: HomeScreen,
        Card: CardScreen,
    },
    {
        initialRouteName: 'Home',
        navigationOptions: {
            header: null, 
        },
    }
);

export default RootStack

1 Ответ

0 голосов
/ 08 ноября 2018

RootStack не является компонентом реакции. Вам нужно сделать что-то вроде этого, я бы предложил перенести в отдельный файл:

class AppContainer extends React.Component {
  render(){
    return <RootStack />
  }
}

export default connect(mapStateToProps, mapDispatchToProps)(AppContainer)

Теперь вы можете импортировать AppContainer и передать его в App компонент

...