问题来源
对某个小玩意儿做开发的时候,发现如果使用数组来构建createSignal,会引发修改数据不响应的情况。
示例:
let [alterEvent,setAlterEvent] = createSignal(
[
{
"data":"数据1",
"level":"1",
},
{
"data":"数据2",
"level":"1",
},
{
"data":"数据3",
"level":"1",
},
{
"data":"数据4",
"level":"1",
}
]
)解决思路
思路有两个:1.使用option配置来处理。2.使用Store来构建
思路一:
Solid 中的几个 API 将 "options" 对象作为可选的最后一个参数。createSignal 的选项对象允许您提供 equals 选项。默认情况下,当调用 signal 的 setter 时,根据 JavaScript 的 === 运算符,仅当新值实际上不同于旧值时,signal 才会更新(并导致依赖项重新运行)。
const [getValue, setValue] = createSignal(initialValue, { equals: false });思路二:
当访问嵌套对象时,store 将生成嵌套 store 对象,这适用于整个树。但是,这只适用于数组和普通对象。类没有被包装,所以像 Date、HTMLElement、RegExp、Map、Set 这样的对象不会像 store 上的属性一样被细粒度地响应。


Comments | NOTHING