I’m building a custom Airtable blocks app that pulls data from several tables and shows them together. I want the app to update when users make changes, so I’m using useRecords hooks for each table.
The problem is my app keeps restarting every time it hits a new useRecords hook. This makes everything super slow. Is there a better way to handle multiple table connections without all these restarts?
Here’s my setup:
import { initializeBlock, useBase, useRecords } from '@airtable/blocks/ui';
import React from 'react';
function DashboardApp() {
const database = useBase();
// Connect to all required tables
const tableRefs = React.useMemo(() => {
return {
itemsTable: database.getTableByNameIfExists(Config.ITEMS_TABLE),
pricesTable: database.getTableByNameIfExists(Config.PRICING_TABLE),
clientsTable: database.getTableByNameIfExists(Config.CLIENTS_TABLE),
ordersTable: database.getTableByNameIfExists(Config.ORDERS_TABLE),
suppliersTable: database.getTableByNameIfExists(Config.SUPPLIERS_TABLE),
};
}, [database]);
console.log('database tables connected...')
const orderData = useRecords(tableRefs.ordersTable);
console.log('order records loaded...')
const supplierData = useRecords(tableRefs.suppliersTable);
console.log('supplier records loaded...')
const pricingData = useRecords(tableRefs.pricesTable);
console.log('pricing records loaded...')
const itemData = useRecords(tableRefs.itemsTable);
console.log('item records loaded...')
const clientData = useRecords(tableRefs.clientsTable);
console.log('client records loaded...')
}
What I see in console:
database tables connected...
...
database tables connected...
order records loaded...
...
database tables connected...
order records loaded...
supplier records loaded...
...
database tables connected...
order records loaded...
supplier records loaded...
pricing records loaded...