Prevent undefined requests in chained DataSources
When one DataSource depends on another, the dependent request can fire too early and interpolate undefined into its URL.
Use when to guard the dependent DataSource so it only runs after the required value exists.
<App>
<DataSource
id="user"
url="/api/users/me"
/>
<DataSource
id="orders"
url="/api/orders/{user.value.id}"
when="{user.value.id}"
/>
<Text variant="strong">User:</Text>
<Text>{user.value.name}</Text>
<Text variant="strong">Orders:</Text>
<List data="{orders}">
<Text>Order #{$item.id}: {$item.total} USD</Text>
</List>
</App>Chain DataSources without undefined requests
<App>
<DataSource
id="user"
url="/api/users/me"
/>
<DataSource
id="orders"
url="/api/orders/{user.value.id}"
when="{user.value.id}"
/>
<Text variant="strong">User:</Text>
<Text>{user.value.name}</Text>
<Text variant="strong">Orders:</Text>
<List data="{orders}">
<Text>Order #{$item.id}: {$item.total} USD</Text>
</List>
</App>Key point
Without when, orders may run first and call /api/orders/undefined.
With when="{user.value.id}", the orders request starts only after the first DataSource resolves.