Всем привет когда я вызываю thunk то у меня появляется ошибка Cannot read property ‘type’ of undefined как исправить
Покажи стектрейс ошибки
Что это
Что ты видишь написано в строке в которой происходит ошибка?
Наверно ошибка где-то в thunk.
Я закоментировал вызов и ошибка исчезла
Нет. Намного выше вероятность что ошибка в твоем коде чем коде библиотеки. Я не могу тебе помочь если ты не хочешь этого делать сам. Что ты видишь написано в строке в которой происходит ошибка?
Я не имел ввиду библиотеку а функцию которая сам написал чтобы диспачить экшены асинхроно
Написанно что не могу прочитать тип у undefined значит что экшен undefined
Точно. Теперь можешь поставить console.trace()
прямо перед switch
и увидеть стектрейс ошибки, в нем увидишь скорее всего место где вызывается функция без ожидаемого параметра.
В ошибках все написано: проблема в компоненте на строке 5. Это можно увидеть в стектрейсе (читая стектрейсы, игнорируй все что не относится к твоим скриптам), и еще написано прямым текстом под большим стектрейсом: The above error occurred in <GetData> component
.
на строке 5 происходит вызов санки но проблема в том что я не понимаю что не так с санкой
export const getDataObject = ()=>{
return function(dispatch) {
axios.get("http://data.fixer.io/api/latest?access_key=c93fb21a646bb3793900d98ce4aaaec4")
.then((response)=>{
const datas = response.data.date;
dispatch({type: "DATE_FROM_SERVdrggER", data:datas})
console.log(response.data)
.catch(eror=>{
console.log(eror)
})
})
}}
У тебя точно есть тип DATE_FROM_SERVdrggER
? Строка выглядит нездоровой
да есть такой тип
const reducer = function (state = initialState, action) {
console.trace()
switch (action.type) {
case "DATE_FROM_SERVdrggER":
return{...state, date: action.data}
case "SET_VISIBILITY_FILTER":
return{...state, date:"eodigy"}
default:
return state
}
};
Второй момент - кажется в коде синтаксическая ошибка. Не знаю повлияет ли она на результат. Но после форматирования и перемещения строк у меня получается такой код. Он тоже выдает ошибку?
export const getDataObject = () => {
return function(dispatch) {
axios.get("http://data.fixer.io/api/latest?access_key=c93fb21a646bb3793900d98ce4aaaec4")
.then((response) => {
const datas = response.data.date;
dispatch({
type: "DATE_FROM_SERVdrggER",
data: datas
})
console.log(response.data)
})
.catch(eror => {
console.log(eror)
})
}
}
не чего не изменилось