diff --git a/.changeset/gentle-eyes-lead.md b/.changeset/gentle-eyes-lead.md new file mode 100644 index 000000000..b6ef613e9 --- /dev/null +++ b/.changeset/gentle-eyes-lead.md @@ -0,0 +1,5 @@ +--- +"@solid-primitives/keyed": patch +--- + +docs: add missing keyfn to example diff --git a/packages/keyed/README.md b/packages/keyed/README.md index 7ae3db631..c167a9211 100644 --- a/packages/keyed/README.md +++ b/packages/keyed/README.md @@ -47,30 +47,32 @@ The `keyArray` primitive takes 4 arguments: - `options` - a fallback for when the input list is empty or missing _(Optional)_ ```ts -const mapped = keyArray(source, (model, index) => { - const [name, setName] = createSignal(model().name); - const [description, setDescription] = createSignal(model().description); - - createComputed(() => { - setName(model().name); - setDescription(model().description); +const mapped = keyArray(source, + (model) => model.id, + (model, index) => { + const [name, setName] = createSignal(model().name); + const [description, setDescription] = createSignal(model().description); + + createComputed(() => { + setName(model().name); + setDescription(model().description); + }); + + return { + id: model.id, + get name() { + return name(); + }, + get description() { + return description(); + }, + get index() { + return index(); + }, + setName, + setDescription, + }; }); - - return { - id: model.id, - get name() { - return name(); - }, - get description() { - return description(); - }, - get index() { - return index(); - }, - setName, - setDescription, - }; -}); ``` Notice that both the value and index arguments are signals. Items are identified only by keys, it means that the items could be copied, replaced, changed, but as long as the key is the same, `keyArray` will treat it as the same item.