Невозможно получить доступ к данным реквизита от создателя действия - PullRequest
0 голосов
/ 25 января 2019

В этом приложении я использую избыточность как хранилище, и проблема, с которой я сталкиваюсь, не может получить доступ к какому-либо значению внутри объекта props.

Это компонент, получающий запрос:

class SearchBar extends Component {

state = {
    locationData:''
}


handleExample = ()=>{
this.props.searchData(this.state.locationData);

}

const mapDispatchToProps = (dispatch)=>{

return{
    searchData:(data)=>dispatch(searchData(data))

}
}



export default connect(null, mapDispatchToProps)(SearchBar)

Это создатель действия:

import axios from 'axios'

export const searchData =  (data) =>{
return async (dispatch , getState)=>{
    //async call
    const config = {headers:{'user-    
 key':'7bd05934d767a3a1edhdh0b782cf7bbdc0'}};
    const res = await axios.get(`https://developers.zomato.com/api/v2.1/collections?city_id=2`, config);
    //console.log(res.data.collections);

    dispatch({
        type:'SEARCH_DATA', 
        data,
        payload:res.data
    });

}
};

Вот редуктор:

const initState={
    SearchData:[]
  }

const dataReducer = (state = initState, action)=>{
switch(action.type){
    case 'SEARCH_DATA':
    return {
        ...state, 
        SearchData:action.payload
      }
    default:
    return state;
}



}

export default dataReducer;

Это корень редуктора

import dataReducer from './dataReducer';
import {combineReducers} from 'redux';

const rootReducer = combineReducers({
data:dataReducer
});


export default rootReducer;

Теперь я пытаюсь отправить данные в подпорки этого компонента

import React, { Component } from 'react'
import CollectionCard from './CollectionCard'
import {connect} from 'react-redux'
import  { searchData } from '../../store/actions/dataActions'

class Collection extends Component {


  componentDidUpdate(prevProps){


   console.log(this.props.data.searchData)
   //console.log(this.state)


  }

const mapStateToProps = (state)=>({

 data:state.data
 })
 export default connect(mapStateToProps, )(Collection);

Теперь, когда я получаю доступданные из реквизита я могу получить к ним доступ к параметру данных, получая информацию правильно, как это

{SearchData: {…}}
SearchData: {collections: Array(36), has_more: 0, share_url: 
"http://www.zoma.to/c-2", display_text: "OR EXPLORE OUR COLLECTIONS", 
has_total: 0}
__proto__: Object

Но я не могу получить доступ к параметру searchData и не могу понять, почему он не работает,попробовал некоторые предыдущие решения из обсуждений, но все равно не повезло.

...