Игра с извлечением данных в асинхронном действии в редуксе и использовании редуктора. Просто нужна помощь в получении данных в редукторе. Ниже приводится то, что у меня есть.
actions.js
function receiveData(loadData) { return { type: 'RECEIVE_POSTS', loadData }; } function schemaData(loadData) { return dispatch => { return fetch(`www.fetchurlhere`) .then(response => response.json()) .then(json => dispatch(schemaData(loadData, response.data))); }; }
reducer.js
export default function schemaData(prevState = {}, action) { if (action.type === 'RECEIVE_POSTS') { return action.receiveData; } else { return prevState; } }
Я вижу редуктор «schemaData» в магазине, но его пуст. Никогда не запрашивал выборку в действии раньше. Я посмотрел пример сокращения и попытался изменить для себя. Но его пусто, так что чего-то не хватает.
Всего 1 ответ
Попробуй это:
actions.js
function receiveData(loadData) { return { type: 'RECEIVE_POSTS', receiveData: loadData }; } function schemaData() { return dispatch => { return fetch(`www.fetchurlhere`) .then(response => response.json()) .then(json => dispatch(receiveData(json))); }; }
reducer.js
export default function schemaData(prevState = {}, action) { if (action.type === 'RECEIVE_POSTS') { return action.receiveData; } else { return prevState; } }
Это небольшая демонстрация: https://codesandbox.io/s/3vmn3lvp76