diff --git a/reactive_stores/src/keyed.rs b/reactive_stores/src/keyed.rs index f1f6ce9dbf..5ca95af792 100644 --- a/reactive_stores/src/keyed.rs +++ b/reactive_stores/src/keyed.rs @@ -148,11 +148,8 @@ where { fn latest_keys(&self) -> Vec { self.reader() - .expect("trying to update keys") - .deref() - .into_iter() - .map(|n| (self.key_fn)(n)) - .collect() + .map(|r| r.deref().into_iter().map(|n| (self.key_fn)(n)).collect()) + .unwrap_or_default() } } @@ -654,13 +651,15 @@ where self.track_field(); // get the current length of the field by accessing slice - let reader = self - .reader() - .expect("creating iterator from unavailable store field"); + let reader = self.reader(); + let keys = reader - .into_iter() - .map(|item| (self.key_fn)(item)) - .collect::>(); + .map(|r| { + r.into_iter() + .map(|item| (self.key_fn)(item)) + .collect::>() + }) + .unwrap_or_default(); // return the iterator StoreFieldKeyedIter { inner: self, keys }