Skip to content

Commit 69949d9

Browse files
authored
Fix terrible optimistic store examples
1 parent a0a220c commit 69949d9

1 file changed

Lines changed: 4 additions & 6 deletions

File tree

documentation/solid-2.0/06-actions-optimistic.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,11 @@ Solid 2.0 introduces an `action()` wrapper for async mutations and a pair of opt
2323
- refresh derived async computations via `refresh()`
2424

2525
```js
26-
const [todos] = createStore(() => api.getTodos(), { list: [] });
27-
const [optimisticTodos, setOptimisticTodos] = createOptimisticStore({ list: [] });
26+
const [todos, setOptimisticTodos] = createOptimisticStore(() => api.getTodos(), []);
2827

2928
const saveTodo = action(function* (todo) {
3029
// optimistic write
31-
setOptimisticTodos((s) => s.list.push(todo));
30+
setOptimisticTodos((todos) => todos.push(todo));
3231

3332
// perform async work
3433
yield api.addTodo(todo);
@@ -42,7 +41,7 @@ For better TS ergonomics, an async generator form is also viable:
4241

4342
```js
4443
const saveTodo = action(async function* (todo) {
45-
setOptimisticTodos((s) => s.list.push(todo));
44+
setOptimisticTodos((todos) => todos.push(todo));
4645
const res = await api.addTodo(todo);
4746
yield; // resume action in the same transition context
4847
refresh(todos);
@@ -94,8 +93,7 @@ const updateName = action(function* (next) {
9493
`createOptimisticStore(fnOrValue, initial?, options?)` is the store analogue. A common pattern is to derive from a source getter and then apply optimistic mutations in an action.
9594

9695
```js
97-
const [todos] = createStore(() => api.getTodos(), { list: [] });
98-
const [optimisticTodos, setOptimisticTodos] = createOptimisticStore(() => snapshot(todos), { list: [] });
96+
const [todos, setOptimisticTodos] = createOptimisticStore(() => api.getTodos(), []);
9997

10098
const addTodo = action(function* (todo) {
10199
setOptimisticTodos((s) => s.list.push(todo));

0 commit comments

Comments
 (0)