В этом приложении я использую избыточность как хранилище, и проблема, с которой я сталкиваюсь, не может получить доступ к какому-либо значению внутри объекта 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 и не могу понять, почему он не работает,попробовал некоторые предыдущие решения из обсуждений, но все равно не повезло.