如何在 Jetpack Compose 中记忆 lambda 函数,如 useCallback

How to memoize a lambda function in Jetpack Compose like useCallback

我正在尝试在 Jetpack Compose 中实现一个记忆回调函数,类似于 React 的 useCallback

例如,我想用它来创建一个 submit lambda 函数,其中包含提交表单的逻辑,但我不希望在每次重组时重新创建此 lambda。这应该仅在其依赖项更改时重新创建。

有这样的东西吗?

正常的remember/rememberSaveable函数可以用于此。这只会在给定的依赖项更改时重新创建 lambda 函数。

val submit = rememberSaveable(dependency1, dependency2) {
    {
        // Logic here
    }
}

submit()

Lambda 记忆化由编译器自动完成,方法是根据 lambda 捕获的稳定值隐式生成 remember 调用。如果编译器认为捕获的一个或多个值不稳定,则只需要显式 remember