Redux-Persist с React-Native-Background-Fetch - PullRequest
2 голосов
/ 13 мая 2019

Я создаю приложение React-Native, которое извлекает данные из API в качестве фоновой службы.

Я посмотрел в Интернете, могу ли я вручную повторно создать хранилище с данными, извлеченными во время фоновой задачи, но ничего не смог найти.

Можно ли повторно скопировать хранилище redux-persist вручную, пока приложение закрыто, из фоновой задачи 'service'?

1 Ответ

1 голос
/ 27 мая 2019

Для людей, которые все еще задаются вопросом, возможно ли использовать ответную нативную фоновую выборку для планирования ЛЮБОЙ задачи, это вполне нормально, если она не касается пользовательского интерфейса, например. (AsyncStorage, Redux-Persist, Realm, DB ...) не имеет прямого отношения к вызову изменений в пользовательском интерфейсе, поэтому его вполне можно использовать.

В моем конкретном случае я использую самый медленный параметр - AsyncStorage - для сохранения объекта типа реквизита, который я использую на глобальном уровне приложения, и передачи производных данных на мои компоненты:

// Example of HeadlessTask implementation

import BackgroundFetch from 'react-native-background-fetch'
import AsyncStorage from '@react-native-community/async-storage';

const HeadlessTask = async () => {

    // Prepare data - fetching from API, other transformations...
    let propsObject = {};

    AsyncStorage.setItem(ITEM_KEY, JSON.strigify(propsObject))
        .then(() => {
            console.log('[AsyncStorage] Object Saved!');
            // For iOS specifically we need to tell when the service job
            // is done.
            BackgroundFetch.finish();
        })
        .catch((e) => {
            console.log('[AsyncStorage] Error saving object: ', e);
            BackgroundFetch.finish();
        });
}

P.S, См. https://github.com/transistorsoft/react-native-background-fetch, чтобы узнать, как установить и реализовать Background Fetch.

...