【发布时间】:2018-12-17 11:37:47
【问题描述】:
我正在尝试使用我的 expo react 本机应用程序登录 Facebook。但我有一个问题。我用的是redux。我的 app.js 在这里。
import { createBottomTabNavigator, createAppContainer, createStackNavigator
} from 'react-navigation';
import AuthScreen from './screens/AuthScreen';
import { Provider } from 'react-redux'
import store from './store';
const MainNavigator = createBottomTabNavigator({
welcome: {screen: WelcomeScreen},
auth: { screen: AuthScreen },
main: {
screen: createBottomTabNavigator({
map: { screen: MapScreen },
deck: { screen: DeckScreen },
review: {
screen: createStackNavigator({
review: { screen: ReviewScreen },
settings: { screen: SettingsScreen }
})
}
})
}
})
class App extends React.Component {
render() {
return (
<Provider store={store} >
<View>
<MainNavigator/>
</View>
</Provider>
);
}
}
export default createAppContainer(MainNavigator)
这是我的 AuthScreen.js
import React, { Component } from 'react';
import { View, Text } from 'react-native';
import { connect } from 'react-redux';
import * as actions from '../actions/auth_actions';
class AuthScreen extends Component {
componentDidMoun(){
this.props.facebookLogin();
}
render(){
return(
<View>
<Text>Auth</Text>
</View>
)
}
}
export default connect(null, actions)(AuthScreen);
我在 auth_action.js 文件中调用了 facebookLogin() 函数
export const facebookLogin = () => async dispatch => {
let token = await AsyncStorage.getItem('fb_token');
if(token) {
dispatch({ type: FACEBOOK_LOGIN_SUCCESS, payload: token })
}else{
doFacebookLogin(dispatch);
}
}
reducer/index.js 文件
import { combineReducers } from 'redux';
export default combineReducers({
auth: () => { return {} }
});
这是我的 store.js 文件。
import { createStore, compose, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import reducers from '../reducers';
const store = createStore(
reducers,
{},
compose(
applyMiddleware(thunk)
)
);
export default store;
但是我收到了这个错误。
不变违规:在“Connect(AuthScreen)”的上下文中找不到“store”。要么将根组件包装在 a 中,要么将自定义的 React 上下文提供者传递给连接选项中的 Connect(AuthScreen),并将相应的 React 上下文消费者传递给。
有什么问题?你能帮帮我吗?
【问题讨论】:
-
你是怎么解决这个问题的?请回答。我也面临同样的问题
标签: reactjs react-native redux react-navigation expo