Нарушение инварианта: не удалось найти «магазин» React Native - PullRequest
0 голосов
/ 24 апреля 2019

Я получаю следующую ошибку с использованием приставки в нативной реакции

Нарушение инварианта: Нарушение инварианта: Не удалось найти «store» в контексте «Connect (Lista)».Либо оберните корневой компонент в a, либо передайте пользовательский поставщик контекста React соответствующему получателю контекста React в 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
    }
}

и, скажем, это мои 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);

1 Ответ

0 голосов
/ 24 апреля 2019

Вы неправильно подключили свой компонент. connect() - это компонент высокого порядка , который принимает mapStateToProps в качестве аргумента для сопоставления хранилища с вашим компонентом.

Вы можете использовать его в своем компоненте следующим образом.

function mapStateToProps(state){
   return {state}
}

export default connect(mapStateToProps)(your_component_name); 
...