Thunk [помогие понять причину ошибки]

Всем привет когда я вызываю thunk то у меня появляется ошибка Cannot read property ‘type’ of undefined как исправить

Покажи стектрейс ошибки

Что это

ссылка на гит репозиторий https://github.com/arsenii436/react

Что ты видишь написано в строке в которой происходит ошибка?

Наверно ошибка где-то в 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

}

};

1 лайк

Второй момент - кажется в коде синтаксическая ошибка. Не знаю повлияет ли она на результат. Но после форматирования и перемещения строк у меня получается такой код. Он тоже выдает ошибку?

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)
			})
	}
}

не чего не изменилось