Ответы пользователя по тегу React
  • Получить и обработать даные, React/Redux?

    @aphows
    Redux используется как хранилище для данных, то есть ваша задача получить данные, обработать их, а потом занести их в state. Дальше можно использовать эти данные уже во вьюхах в обработанном виде.
    Асинхронность реализуется через middleware, самый распространенный - redux-thunk от gaeron. Он позволяет возвращать из экшна не объект, а функцию, в которую передастся dispatch, и через который можно будет вызвать изнутри этой функции другие экшны.

    import convert from 'xml-js'; // https://www.npmjs.com/package/xml-js
    
    class apiClient {
        get(url) {
            return Promise.resolve(/* do something async */)
        }
    }
    // actions
    export function getData() {
        return (dispatch, getState) => {
            dispatch({
                type: 'data/LOAD_STARTED',
            });
            apiClient.get('/api')
                .then((response) => {
                    const data = convert.xml2json(response.data, {compact: true, spaces: 4});
                    dispatch({
                        type: 'data/LOAD_SUCCESS',
                        payload: data
                    })
                })
                .catch((e)=> {
                    dispatch({
                        type: 'data/LOAD_ERROR',
                        payload: e,
                    })
                });
        }
    }
    Ответ написан
    2 комментария