Вход

Просмотр полной версии : Как правильно получить и присвоить данные полученные из сервера Axios, react-redux


hambat
07.03.2017, 11:23
Всем привет!
С помощью axios пытаюсь получить данные и записать в const initialState, помогите пожалуйста как правильно это сделать..
спасибо!

можно ли как то вне блока then это сделать?
если внутри then, то как правильно экспортировать tracks ?

import axios from 'axios';


axios.get('http://ellenflare.com/loads/json')
.then(function (res) {

console.log(res.data)

});

const initialState = [
{
id: 1,
name: 'Enter Sandman'
},
{
id: 2,
name: 'The weekend'
}
];

export default function tracks(state = initialState, action) {

if (action.type === 'ADD_TRACK') {
return [
...state,
action.payload
];
} else if (action.type === 'FETCH_TRACKS_SUCCESS') {
return action.payload;
}
return state;
}

destus
07.03.2017, 12:18
hambat,
ну вообще обычно генерирует действие, например FETCH_TRACKS, когда запрос завершился генерируют ещё одно действие, например FETCH_TRACK_SUCCESS, и reducer изменяет твоё состояние. Для асинхронных действий redux-thunk посмотри. И не пиши if () {} else if () {}. Используй switch.

hambat
07.03.2017, 14:14
Спасибо destus.

axios.get('http://ellenflare.com/loads/json')
.then(function (res) {

console.log(res.data)

});

const initialState = [
{
id: 1,
name: 'Enter Sandman'
},
{
id: 2,
name: 'The weekend'
}
];

Cуть вопроса в другом
Как я могу записать полученные данные с res во внешнюю константу initialState ?

destus
07.03.2017, 15:30
hambat,
да не должно быть такого. Только reducer может менять твоё состояние. Это ж осоновы Redux, не изобретай костылей.

hambat
07.03.2017, 16:29
это и есть reducer

destus
07.03.2017, 17:09
hambat,
Тогда я не понимаю что не так в посте 2.