Secondary Primitives

createSelector

Edit this page
function createSelector<T, U>(
source: () => T,
fn?: (a: U, b: T) => boolean
): (k: U) => boolean

Creates a conditional signal that only notifies subscribers when entering or exiting their key matching the value. Useful for delegated selection state. As it makes the operation O(1) instead of O(n).

const isSelected = createSelector(selectedId)
<For each={list()}>
{(item) => <li classList={{ active: isSelected(item.id) }}>{item.name}</li>}
</For>

In the above code if the item.id is equal to the selectedId the active class will be added to the li element. If the item.id is not equal to the selectedId the active class will be removed from the li element.


Arguments

NameTypeDescription
source() => TThe source signal to get the value from.
fn(a: U, b: T) => booleanA function to compare the key and the value.
Report an issue with this page