From cd0380b49be52097c181095b49c692b7797765b6 Mon Sep 17 00:00:00 2001 From: stephentian <745752067@qq.com> Date: Mon, 3 Apr 2023 11:23:44 +0800 Subject: [PATCH 1/5] docs(zh-cn): Update produce docs --- langs/zh-cn/api/api.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/langs/zh-cn/api/api.md b/langs/zh-cn/api/api.md index 64d225bb..cdf5c045 100644 --- a/langs/zh-cn/api/api.md +++ b/langs/zh-cn/api/api.md @@ -967,11 +967,7 @@ setState('todos', {}, todo => ({ marked: true, completed: !todo.completed })) ```ts import { produce } from "solid-js/store"; -function produce( - fn: (state: T) => void -): ( - state: T extends NotWrappable ? T : Store -) => T extends NotWrappable ? T : Store; +function produce(fn: (state: T) => void): (state: T) => T; ``` Solid Store 对象的 API 受 Immer 启发,允许使用下面的代码修改数据 From cfd12f355859d54e30f9b97dbe118bf075eb0fd6 Mon Sep 17 00:00:00 2001 From: stephentian <745752067@qq.com> Date: Mon, 3 Apr 2023 14:32:32 +0800 Subject: [PATCH 2/5] docs(zh-cn): Using a store property as a resource signal --- langs/zh-cn/api/api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/zh-cn/api/api.md b/langs/zh-cn/api/api.md index cdf5c045..0204a0f7 100644 --- a/langs/zh-cn/api/api.md +++ b/langs/zh-cn/api/api.md @@ -285,7 +285,7 @@ const [data, { mutate, refetch }] = createResource(sourceSignal, fetchData); 在第二种情况下,一旦 `sourceSignal` 具有除 `false`、`null` 或 `undefined` 之外的任何值,`fetchData` 将被调用。 -每当 `sourceSignal` 的值发生变化时,都会再次调用它,并且该值将始终作为第一个参数传递给 `fetchData`。 +每当 `sourceSignal` 的值发生变化时,都会再次调用它,并且该值将始终作为第一个参数传递给 `fetchData`。要在 `store` 中的一个属性当作 `sourceSignal`使用,您必须用一个函数封装起来。 您可以调用 `mutate` 来直接更新 `data` signal(它的工作方式与任何其他 signal setter 一样)。您还可以调用 `refetch` 直接重新运行 fetcher,并传递一个可选参数以向 fetcher 提供附加信息:`refetch(info)`。 From c54b71e0689b2b1d34a2bb47c16812a833f08edb Mon Sep 17 00:00:00 2001 From: stephentian <745752067@qq.com> Date: Mon, 3 Apr 2023 14:41:38 +0800 Subject: [PATCH 3/5] docs(zh-cn): Document workaround for TS error when updating stores --- langs/zh-cn/api/api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/zh-cn/api/api.md b/langs/zh-cn/api/api.md index 0204a0f7..06d0eb3e 100644 --- a/langs/zh-cn/api/api.md +++ b/langs/zh-cn/api/api.md @@ -871,7 +871,7 @@ fullName = createMemo(() => `${state.user.firstName} ${state.user.lastName}`); ### 修改 Store -可以采用传递先前状态并返回新状态或值的函数的形式。对象总是浅合并。将值设置为 `undefined` 可以把它们从 store 中删除。 +可以采用传递先前状态并返回新状态或值的函数的形式。对象总是浅合并。将值设置为 `undefined` 可以把它们从 store 中删除。在 `TypeScript`,你可以使用非 `null` 断言来删除值,例如`undefined!`。 ```js const [state, setState] = createStore({ From bbd8eda57a43259d122a5f139ababcf6d0ab2e0c Mon Sep 17 00:00:00 2001 From: stephentian <745752067@qq.com> Date: Mon, 3 Apr 2023 14:53:16 +0800 Subject: [PATCH 4/5] docs(zh-cn): Missing ` in Two dynamic classes example --- langs/zh-cn/api/api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/zh-cn/api/api.md b/langs/zh-cn/api/api.md index 06d0eb3e..5002a6b3 100644 --- a/langs/zh-cn/api/api.md +++ b/langs/zh-cn/api/api.md @@ -1914,7 +1914,7 @@ Solid 提供了 `class` 和 `classList` 两个属性来设置元素的 class。
// 两个动态的 class -
+
``` (注意 `className=...` 在 Solid 1.4 中已弃用。) From 805342825250ab0602c8d1869e123a02b981b2c6 Mon Sep 17 00:00:00 2001 From: stephentian <745752067@qq.com> Date: Mon, 3 Apr 2023 15:07:30 +0800 Subject: [PATCH 5/5] docs(zh-cn): Updates for 1.7 --- langs/zh-cn/api/api.md | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/langs/zh-cn/api/api.md b/langs/zh-cn/api/api.md index 5002a6b3..303002ab 100644 --- a/langs/zh-cn/api/api.md +++ b/langs/zh-cn/api/api.md @@ -401,16 +401,6 @@ function onCleanup(fn: () => void): void; 注册一个清理方法,该方法在当前反应范围的清除或重新计算时执行。可以在任何组件或 Effect 中使用。 -## `onError` - -```ts -import { onError } from "solid-js"; - -function onError(fn: (err: any) => void): void; -``` - -注册在子作用域出错时执行的错误处理程序方法。仅执行最近的作用域错误处理程序。重新抛出可以向上触发。 - # 响应性工具类 这些工具类提供了更好地安排更新和控制如何跟踪响应性的能力。 @@ -470,6 +460,29 @@ setA("new"); // 现在会运行了 请注意,在 `stores` 和 `mutable` 上,从父对象中添加或删除属性会触发 effect。参见[`createMutable`](#createMutable) +## `catchError` + +**v1.7.0 新特性** + +```ts +import { catchError } from "solid-js"; +function catchError(tryFn: () => T, onError: (err: any) => void): T; +``` + +将 `tryFn` 用错误处理程序进行包装,如果在该层级以下发生错误,则会触发错误处理程序。仅最近的作用域错误处理程序会执行。重新抛出以触发上一层级。 + +## `onError` + +**因 catchError,在 v1.7.0 弃用** + +```ts +import { onError } from "solid-js"; + +function onError(fn: (err: any) => void): void; +``` + +注册在子作用域出错时执行的错误处理程序方法。仅执行最近的作用域错误处理程序。重新抛出可以向上触发。 + ## `createRoot` ```ts