我在本机反应中使用redux得到以下错误
不变违反:无法在“连接(Lista)”上下文中找到“存储”。或者将根组件包装到连接选项中,或者将自定义的React提供程序和相应的React使用者传递给connect选项中的Connect(Lista)。
我的代码如下
SettingStore
import {createStore, applyMiddleware} from 'redux';
import Reducers from './Reducer'
import thunk from 'redux-thunk'
export default SettingStore = () => {
let store = createStore(Reducers, applyMiddleware(thunk))
return store
}我的指数减速器
import {combineReducers} from 'redux';
import loginreducer from './login.reducer'
export default combineReducers({
login: loginreducer,
})我的索引动作
import {FETCHING_GETDATA_PARVU} from '../Constante'
import {GetParv} from '../Api/Parvularia.api'
export const getParvuSuccess = (data) => {
return {type: FETCHING_GETDATA_PARVU, data}
}
export const GetParvu = () => {
return (dispatch) => {
dispatch(getData())
GetParv(1)
.then(([response, json]) => {
dispatch(getParvuSuccess(json))
})
.catch((error) => console.log(error))
}
}这是我的减速器的maintab.reducer
import {FETCHING_GETDATA_PARVU} from '../Constante'
const initialState = {
data: [],
isFeching: false,
error: false
}
export default dataReducer = (state = initialState, action) => {
switch(action.type) {
case FETCHING_GETDATA_PARVU:
return {
...state,
data: action.data,
isFeching: false
}
default:
return state
}
}假设这是我的redux结构的app.js
import React, { Component } from 'react';
import { Platform, StyleSheet, Text, View } from 'react-native';
import {Provider} from 'react-redux';
import Lista from '../screens/Educadora/Lista';
import SettingStore from './SettingStore'
let store = SettingStore()
const Ap = () => (
<Provider store={store}>
<Lista/>
</Provider>
)
export default Ap;最后一部分是让我更加怀疑的部分,我认为这是我的错误,但我不知道为什么我是新的反应本土化的人。
编辑
这就是我想显示使用redux进行的查询的地方。
import { connect } from 'react-redux'
import {GetParvu} from '../../Redux/Actions'
class Lista extends React.Component {
componentWillMount() {
this.props.GetParvu()
render(){
return(algoaca)
}
}
}
const mapStateToProps = state => {
return {
parvu: state.data
}
}
const mapDispatchToProps = dispatch => {
return {
GetParvu: () => {
return dispatch(GetParvu(1))
}
}
}
AppRegistry.registerComponent('EqualsMobile', () => Lista);
export default connect(mapStateToProps, mapDispatchToProps)(Lista);发布于 2019-04-24 13:23:30
你用错误的方式连接了你的组件。connect()是高级组件,它以mapStateToProps作为参数将存储映射到组件。
您可以像这样在组件中使用它。
function mapStateToProps(state){
return {state}
}
export default connect(mapStateToProps)(your_component_name); https://stackoverflow.com/questions/55830934
复制相似问题