javascript - react-native 在连接(组件)的上下文中找不到存储
问题描述
希望有人能给我一个提示,所以这是我在 react-native 应用程序中的 Redux 实现:
我的 app.js: 只需在这个文件中设置我的商店,然后像我的导师一样将我的容器包装在 Provider 中。
import React from 'react';
import Welcome from './screens/Welcome';
import ShowCase from './screens/ShowCase';
import ProductDetails from './screens/ProductDetails';
import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import {createStore} from 'redux';
import {Provider} from 'react-redux';
import rootReducer from './Reducer';
const store = createStore(rootReducer);
const pushRouteOne = createStackNavigator({
page1: {
screen: Welcome
},
page2: {
screen: ShowCase
},
page3: {
screen: ProductDetails
}
}, {
initialRouteName: 'page1',
mode: 'modal',
headerMode: 'none'
})
const AppContainer = createAppContainer(pushRouteOne);
const App = () => {
return (
<Provider store={store}>
<AppContainer />
</Provider>
)
}
export default AppContainer;
这是我的操作文件:我用来Axios
从虚假 API 中获取一些数据。
import {GET_BOOK} from './../Types/type';
import axios from 'axios';
const getBook = async (books) => {
const res = await axios.get('https://fakerestapi.azurewebsites.net/api/Books');
dispatch(getAsync(res.data));
return {
type: GET_BOOK,
payload: res
}
};
export default getBook;
这是我的减速器:我应该提到我结合了减速器,但我认为将代码放在这里没有用,但如果你需要检查一下,我会更新问题。
import {GET_BOOK} from '../Types/type';
const bookReducer = (state = null, action) => {
switch(action.type){
case GET_BOOK:
state = action.payload;
return {
data: state,
alert: false
};
default:
return state;
}
}
export default bookReducer;
这是我的欢迎页面,这是第一页:
import React, { useEffect } from 'react';
import {
StyleSheet,
View,
Text,
Image,
TouchableOpacity
} from 'react-native';
import getbook from './../Action/get_book';
import {connect} from 'react-redux';
import {bindActionCreator} from 'redux';
const Welcome = (props) => {
const navigationOptions = ({
navigation
}) => {
const {
params = {}
} = navigation.state;
}
return (
<View style={styles.screen}>
<View style={styles.img_container}>
<Image style={styles.shop_img} source={require('../Images/shopping.png')} />
</View>
<TouchableOpacity style={styles.btn_main} onPress={() => {
const { navigate } = props.navigation;
navigate('page2');
}}>
<Text style={styles.welc_text}>Get Started</Text>
</TouchableOpacity>
</View>
)
}
const mapStateToProps = state => {
return {
books : state.book
}
};
const mapDispatchToProps = dispatch =>
bindActionCreator({
Getbook : getbook
}, dispatch);
export default connect(mapStateToProps, mapDispatchToProps)(Welcome)
我遇到的错误是"could not find store in the context of Connect(Welcome)"
. 我看到了一些建议Provider
在index.js
文件中使用的答案,我也尝试过,但得到了相同的结果。任何帮助,将不胜感激。
解决方案
代替export default AppContainer;
做export default App;
推荐阅读
- python - 为什么 Python 向我发送关于对象类型的混合消息?
- mysql - 有条件地计数,同时也分组
- variables - 终端中的变量 ${i%.*} 是什么意思?
- xcode - Universal Links 停止在 iOS 13 上调用应用程序(应用程序 userActivity ...)
- c# - 在使用 Google Drive .NET API 上传文件时,有时会出现 Null ResponseBody
- clockify - TimeIntervalDto 对象中的持续时间数据类型
- python - 有没有办法使用 Compute Engine API + NodeJS 修改 Compute Engine 虚拟机中的文件
- mongodb - 当 mongodb 实例作为 SECONDARY 添加到副本集时,本地用户和角色会发生什么?
- javascript - 如何通过过滤其中一个属性来找到对象内部的对象?
- sql-server - 使用 OpenXML 分解 XML