我知道声明式编程下,不再持有对某个页面(组件)的对象的引用,然后基于代码(命令)和对该页面(组件)的引用,更新页面的元素。而是让页面基于
val v = remeber{mutableState(...)}
后,通过改变 v 的值,使页面在 v 更新后自动重载,发生变化。
同时采用函数式编程,在 UI 绘制以及 UI 中的事件时,利用函数描述行为即可,可以不用类进行封装。
我的问题是,现在有一个按钮,它在 A 组件中,由 a()声明其存在,a() 在 b() 中被调用(声明),b() 在 c() 中被调用(声明) ……………… y() 在 z() 中被调用(声明),z() 在 App() 中被调用(声明)
这个在 A 组件里的按钮,按下后会将 App() 这一层声明的一个文本 Text(text="$rState.value"){...}
的文本内容改掉。
z,y,x,.......,c,b,a 声明函数均不在 App 这个函数内。
那我现在遵循函数式编程,声明式 UI ,要怎么实现呢?让抽象出来的 a,b,c......x,y,z 的声明函数,都接收 rState 作为参数,即便在 b,c,....,x,y,z 声明内都没有操作 rState 的情况下?
谢谢
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.