Как получить данные запроса из axios.get в магазин Redux - PullRequest
0 голосов
/ 11 декабря 2018

Я новичок в Redux.Может кто-нибудь объяснить, как я могу получить данные запроса от Get

componentDidMount() {
        axios.get('/api/v3/products', {
            params: {
                pageNumber: 1,
                pageSize: 500,
            }
        })
            .then(response => {
                this.setState({result: response.data});
            })
            .catch(function (error) {
                console.log('error TestMethod', error);
            })
            .then(function () {
                // always executed
            });
    }

И положить его в магазин в Redux

const initState = {
    products: [
        {id: 1, title: 'first'},
        {id: 2, title: 'second'},
        {id: 3, title: 'third'},
        {id: 4, title: 'fourth'},
        {id: 5, title: 'fifth'},
    ],
};

Есть ли какие-либо методы?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Вам необходимо использовать промежуточное ПО для обработки побочных эффектов такого типа.Вы можете использовать redux-thunk или redux-saga

, в документации по redux-thunk поясняется Why Do I Need This

Рекомендуется использовать Thunksпромежуточное программное обеспечение для базовой логики побочных эффектов Redux, включая сложную синхронную логику, для которой требуется доступ к хранилищу, и простую асинхронную логику, такую ​​как запросы AJAX.

Вы также можете использовать redux-saga, который выполняет аналогичную задачу.

0 голосов
/ 11 декабря 2018

Внутри редуктора поместите корпус в переключатель, скажем ...

case FETCH_DATA: { 
  return {...state, data: action.payload}
}

Теперь у вас есть код редуктора.Внутри затем блокируйте диспетчерское действие {type: FETCH_DATA, payload: response.data}

.then(response => {
            this.setState({result: response.data});
        })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...