Dobry wieczór wszystkim!Obsługa połączeń api w Redux z Axios
Jestem całkowitym początkującym w React i Redux, więc proszę o zachowanie mnie, jeśli to brzmi totalnie głupio. Próbuję dowiedzieć się, jak mogę wykonać niektóre wywołania API w Redux i to nie idzie dobrze. Kiedy konsola loguje żądanie od twórcy akcji, wartość obietnicy jest zawsze "nieokreślona", więc nie jestem pewien, czy robię to poprawnie.
Moim celem jest pobranie informacji z danych wewnątrz obiektu ładunku i wyświetlenie ich wewnątrz komponentu. Starałem się, aby to działało przez ostatnie dni i jestem całkowicie zagubiony.
Używam Axios dla i redux-obiecuję obsłużyć połączenie.
Każda pomoc zostanie bardzo doceniona.
Oto wyjście z konsoli.
Action Creator
import axios from 'axios';
export const FETCH_FLIGHT = 'FETCH_FLIGHT';
export function getAllFlights() {
const request = axios.get('http://localhost:3000/flug');
console.log(request);
return {
type: FETCH_FLIGHT,
payload: request
};
}
Reduktor
import { FETCH_FLIGHT } from '../actions/index';
export default function(state = [], action) {
switch (action.type) {
case FETCH_FLIGHT:
console.log(action)
return [ action.payload.data, ...state ]
}
return state;
}
Komponent
import React from 'react';
import { Component } from 'react';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import { getAllFlights } from '../actions/index';
import Destinations from './Destinations';
class App extends Component {
componentWillMount(){
this.props.selectFlight();
}
constructor(props) {
super(props);
this.state = {
};
}
render() {
return (
<div>
</div>
);
}
function mapStateToProps(state) {
return {
dest: state.icelandair
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({ selectFlight: getAllFlights }, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(App);
Co nie działa dla Ciebie? Twój kod wygląda OK. Obietnica redux chce, aby ładunek był obietnicą i wygląda na to, że to dostarczasz. –