TinyBase logoTinyBase β

useTableIds

The useTableIds primitive returns the Ids of every Table in a Store, and registers a listener so that any changes to that result will cause an update.

useTableIds(storeOrStoreId?: MaybeAccessor<undefined | StoreOrStoreId>): Accessor<Ids>
TypeDescription
storeOrStoreId?MaybeAccessor<undefined | StoreOrStoreId>

The Store to be accessed: omit for the default context Store, provide an Id for a named context Store, or provide an explicit reference.

returnsAccessor<Ids>

An array of the Ids of every Table in the Store.

A Provider component is used to wrap part of an application in a context, and it can contain a default Store or a set of Store objects named by Id. The useTableIds primitive lets you indicate which Store to get data for: omit the optional parameter for the default context Store, provide an Id for a named context Store, or provide a Store explicitly by reference.

When first rendered, this primitive will create a listener so that changes to the Table Ids will cause an update. When the component containing this primitive is unmounted, the listener will be automatically removed.

Example

This example creates a Store, binds it to the primitive, and reads the resulting Solid Accessor.

import {createRoot} from 'solid-js';
import {createStore} from 'tinybase';
import {useTableIds} from 'tinybase/ui-solid';

createRoot((dispose) => {
  const store = createStore().setTables({
    pets: {fido: {species: 'dog'}},
    species: {dog: {price: 5}},
  });
  const tableIds = useTableIds(store);
  console.log(JSON.stringify(tableIds()));
  // -> '["pets","species"]'
  dispose();
});

Since

v8.3.0