9 lines
843 B
Markdown
9 lines
843 B
Markdown
## Bug:
|
|
### Kotlin 在 做 val 声明的对象 作为参数传递时,对象内的属性的值如果被修改,则原有对象的值也会产生变化,反之亦然。
|
|
### 今天遇到的问题时,
|
|
- 我在`FragmentA` 中将 `ObjectA` 写入到 `FragmentA` 和 `FragmentB` 两个页面共享的 一个 `ViewModel` 中,
|
|
- 然后修改原来在 `ObjectA` 的属性值,之后进入到 `FragmentB` 中 (这么做的原因是因为每一次进入`FragmentA` 都需要 `ObjectA` 的属性值得到更新,但是放在启动 `FragmentB` 之前就直接清除了,这么做,导致了,后面的问题)
|
|
- 最后在 `FragmentB` 中获取到错误的值
|
|
#### 解决办法:
|
|
- 把 `val` 改成 `var`, 或者修改 `Object` 清除属性值的时间点,把清除操作放到进入`FragmentA` 开始运行时的回调当中
|