#react-native #redux #react-redux #react-hooks
#react-native #redux #react-redux #реагирующие перехваты
Вопрос:
Если я изменю эту строку
пусть Auth = connect(null,null)(AuthScreen)
с помощью этого
пусть Auth = AuthScreen
все работает. Однако мне нужно использовать redux, и я получаю эту ошибку
Инвариантное нарушение: перехваты могут вызываться только внутри тела функционального компонента.
Эта ошибка находится по адресу: в ConnectFunction (созданной SceneView) в SceneView (созданной SwitchView) в SwitchView (созданной Navigator) в Navigator (в createAppContainer.js:387) в 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)
Эта ошибка находится по адресу: в NavigationContainer (в App.js: 29) в Provider (в App.js:28) в App (в renderApplication.js:34) в RCTView (в View.js:45) в View (в AppContainer.js:98) в RCTView (вView.js:45) в представлении (в 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
Комментарии:
1. Пожалуйста, покажите
AuthScreen
2. Я изменил AuthScreen, как вы можете видеть, но я все равно получаю ту же ошибку. @Vencovsky