область js: доступ к недействительным объектам Results - PullRequest
0 голосов
/ 15 октября 2018

Я использую область внутри своего собственного приложения React, пытаясь запросить список объектов из области базы данных.

function* loadPlaces() {
    let realm;
    try {
        const filter = yield select(getFilter);
        realm = yield call(Realm.open, {schema: [PlaceSchema]});
        let places = realm.objects(PlaceSchema.name);
        if (filter.search) {
            places = places.filtered("name CONTAINS $0", filter.search);
        }
        switch (filter.sort) {
            case Sort.BY_NAME:
                places = places.sorted('name');
                break;
        }
        yield put(loadPlacesSucceed(places));
    } catch (e) {
        console.warn(e.message);
    } finally {
        if (realm) {
            realm.close();
        }
    }
}

После этого я использую приведенные данные в плоский список:

<FlatList
        data={this.props.items}
        keyExtractor={(item) => '' + item.id}
        renderItem={({item}) =>
            <PlaceItem item={item} onClick={(item) => this._onItemClicked(item)}/>}/>

Иошибка получения:

Доступ к недействительным объектам результатов.

Если я удалю realm.close (), ошибка исчезнет, ​​но мне нужно закрыть область после запроса.

1 Ответ

0 голосов
/ 16 октября 2018

Почему вы думаете, что вам нужно закрыть Realm после запроса?Если вы закроете свое Царство, вы потеряете доступ ко всем автоматически обновляемым коллекциям, таким как Results, поэтому вам не следует закрывать Царство, если вам необходим доступ к конкретному экземпляру Results.

...