Ошибка подключения функции Redux: хуки могут вызываться только внутри тела компонента функции - PullRequest
3 голосов
/ 17 апреля 2019

Если я изменю эту строку

let Auth = connect (null, null) (AuthScreen)

с этим

letAuth = AuthScreen

все работает.Однако мне нужно использовать redux, и я получаю эту ошибку

Инвариантное нарушение: хуки могут вызываться только внутри тела компонента функции.

Эта ошибка находится по адресу: inConnectFunction (созданный SceneView) в SceneView (созданный SwitchView) в SwitchView (созданный Navigator) в Navigator (в createAppContainer.js: 387) в NavigationContainer (в App.js: 29) в Provider (в App.js: 28)в приложении (в renderApplication.js: 34) в RCTView (в View.js: 45) в View (в AppContainer.js: 98) в RCTView (в View.js: 45) в View (в AppContainer.js: 115)в AppContainer (в renderApplication.js: 33)

Эта ошибка находится по адресу: в NavigationContainer (в App.js: 29) в Provider (в App.js: 28) в App (в renderApplication.js:34) в RCTView (в View.js: 45) в View (в AppContainer.js: 98) в RCTView (в View.js: 45) в View (в AppContainer.js: 115) в AppContainer (в renderApplication.js:33)

let Auth = connect(null,null)(AuthScreen);

const RootStack = createSwitchNavigator(
  { Auth:  Auth},
  {initialRouteName: 'Auth'}
);

let AppContainer = createAppContainer(RootStack);

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

package.json

    {
  "name": "untitled16",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "npm": "^6.9.0",
    "prop-types": "latest",
    "react": "^16.8.3",
    "react-dom": "^16.8.3",
    "react-native": "^0.58.4",
    "react-native-gesture-handler": "^1.1.0",
    "react-navigation": "^3.8.1",
    "react-redux": "^7.0.2",
    "redux": "^4.0.1",
    "redux-thunk": "^2.3.0"
  },
  "devDependencies": {
    "@babel/core": "7.4.3",
    "@babel/runtime": "7.4.3",
    "babel-jest": "24.7.1",
    "jest": "24.7.1",
    "metro-react-native-babel-preset": "0.53.1",
    "react-test-renderer": "16.8.3",
    "redux-devtools": "^3.5.0"
  },
  "jest": {
    "preset": "react-native"
  }
}

AuthScreen.js

class AuthScreen extends Component{
    render(){
        return(
            <Text>This is a text</Text>
        ) }}

export default AuthScreen
...