首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不变违反:找不到“存储”反应本机

不变违反:找不到“存储”反应本机
EN

Stack Overflow用户
提问于 2019-04-24 13:13:49
回答 1查看 363关注 0票数 0

我在本机反应中使用redux得到以下错误

不变违反:无法在“连接(Lista)”上下文中找到“存储”。或者将根组件包装到连接选项中,或者将自定义的React提供程序和相应的React使用者传递给connect选项中的Connect(Lista)。

我的代码如下

SettingStore

代码语言:javascript
复制
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
}

我的指数减速器

代码语言:javascript
复制
import {combineReducers} from 'redux';
import loginreducer from './login.reducer'

export default combineReducers({
    login: loginreducer,

})

我的索引动作

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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进行的查询的地方。

代码语言:javascript
复制
        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);
EN

回答 1

Stack Overflow用户

发布于 2019-04-24 13:23:30

你用错误的方式连接了你的组件。connect()高级组件,它以mapStateToProps作为参数将存储映射到组件。

您可以像这样在组件中使用它。

代码语言:javascript
复制
function mapStateToProps(state){
   return {state}
}

export default connect(mapStateToProps)(your_component_name); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55830934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档