Ich bin ein wenig neu zu verwenden thunk getState Ich habe sogar versucht, console.log die Methode und nichts zu bekommen. Im Zustand sehe ich, dass loginReducer sie Schlüsseleigenschaft hat, die ich API-Anrufe machen muss. status(pin): true key(pin): "Ls1d0QUIM-r6q1Nb1UsYvSzRoaOrABDdWojgZnDaQyM"
Verwenden Sie getState, um auf den Schlüssel im Redux-Status für API-Aufruf zuzugreifen
Hier habe ich einen Dienst:
import axios from 'axios'
import {thunk, getState} from 'redux-thunk'
import MapConfig from '../components/map/map-config'
const origin = 'https://us.k.com/'
class KService {
getNorthAmericaTimes() {
return (dispatch, getState) => {
const key = getState().key
console.log('This is time key,', key)
if (key) {
dispatch(axios.get(`${origin}k51/api/datasets/k51_northamerica?key=${key}`))
}
}
// const url = `${origin}k51/api/datasets/k51_northamerica?key=${urlKey}`
// return axios.get(url)
}
}
export default new K51Service()
jedoch in meiner entsprechenden Aktion, die ich bekommen, dass Uncaught TypeError: _kService2.default.getNorthAmericaTimes(...).then is not a function
Dies ist, was die Action-Funktion wie folgt aussieht:
export function getKNorthAmericaTime(dispatch) {
KService.getNorthAmericaTimes().then((response) => {
const northAmericaTimes = response.data[0]
dispatch({
type: ActionTypes.SET_NORTH_AMERICA_TIMES,
northAmericaTimes
})
})
}
Ich bin angenommen, dass es wahrscheinlich damit zu tun hat, dass der if-Block nicht ausgeführt wird.
Ich glaube nicht, dass die Frage der Herstellung die Erhaltungs-Anforderung mit der richtigen URL aufgelöst wird. –
Ich habe den Code der Antwort aktualisiert. Bitte überprüfen Sie es erneut – Rodrigo
Kein Problem, so dass ich etwas vermisse Ich habe die ursprüngliche getKNorthAmericaTime (Versand) -Funktion dann in home.js-Komponente Kommentar Ich habe Funktionsname in mapDispatchToProps geändert, da ich die Änderungen, die Sie vorgeschlagen, in der Service-Funktion '' 'mapDispatchToProps (Versand) { Rückgabe { getKNorthAmericaTime:() => getNorthAmericaTimes (Versand), h), }; } '' 'lass es mich wissen, wenn du willst, dass ich auch die Home-Komponente dort hinlege. Vielen Dank! –