小编Sul*_*man的帖子

如何压缩列表

我有一个列表:["a"; "a"; "a"; "c"; "b"; "c"; "c"; "a"; "a"; "d"; "x"; "e"; "e"; "e"]我想压缩它。换句话说,删除每个索引左侧和右侧的重复项。

该函数compress l应该返回["a"; "c"; "b"; "c"; "a"; "d"; "x"; "e"]

我已经在 OCaml 中尝试过这个功能:

let compress list = 
  List.filteri 
    (fun i el -> compare (List.nth list i) el != 0) 
    list;;
Run Code Online (Sandbox Code Playgroud)

它向我抛出错误异常:失败“nth”。

ocaml

1
推荐指数
1
解决办法
163
查看次数

SolidJS:为什么 props 的解构会导致反应性丧失?

Props 是我们所说的在执行时传递给组件函数的对象,它表示绑定到其 JSX 的所有属性。Props 对象是只读的,并且具有封装在 Object getter 中的反应性属性。这使得它们具有一致的形式,无论调用者是否使用信号、信号表达式或静态值。您可以通过 props.propName 访问它们。

因此,不只是解构 props 对象也非常重要,因为如果不在跟踪范围内完成,就会失去反应性。一般来说,访问 Solid 基元或 JSX 之外的 props 对象上的属性可能会失去反应性。这不仅适用于解构,还适用于展开和 Object.assign 等函数。

我在solid js教程中发现了它https://www.solidjs.com/tutorial/props_defaults 。但我仍然不明白道具的解构如何导致反应性丧失。

 const { name } = props;
 return <div>{name}</div>
Run Code Online (Sandbox Code Playgroud)
 return <div>{props.name}</div>
Run Code Online (Sandbox Code Playgroud)

我不知道这些之间有什么区别。我想我还不明白反应性是如何运作的SolidJS

他们是否为组件功能和 JSX 做了更多的事情?

solid-js

1
推荐指数
1
解决办法
1355
查看次数

标签 统计

ocaml ×1

solid-js ×1