# info

- [doc](https://ku.baidu-int.com/knowledge/HFVrC7hq1Q/pKzJfZczuc/nnqmcWXXes/521TNyJmWWt0Ur)
- [issue](https://console.cloud.baidu-int.com/devops/icafe/issue/BPIT-FIN-25788/show)

# 0829

- (x) constructor defaultValue 值需要初始化
  - (x) 去除 debug 信息打印
- (x) 非控制型组件的 state 更新问题
  - (x) 合并 state 更新, 到 triggerChange 中
- (x) 需要去除 : hover out 关闭问题
  - (x) 废弃行为组件
- (x) 关闭面板时交互的调整
  - (x) render 依据 => state (initial selected)
  - (-) 关闭面板 => 设置 `00` 
    - (-) hook?
    - 不需要考虑, 因为关闭瞬间, 已经会被重置
- () 可能和 "初次选择 => 自动关闭" 的交互有关
    - (x) 打开 demo
    - (!) 需要验证 : 
      - () 正常 : value 传入的场景? 给一个 button
      - () 面板打开时 : 定时器 
    - (x) 盲猜目标的数值是已经有了
        - (x) 已复现
        - controlled 形态
        - 都 undefined
        - 选择后, 其他都为 0
    - () defaultValue 也需要考虑在内
    - (x) 需要保证 click 被设置为 true (只要 click on panel)
    - (x) 顺序问题... setState 不能在 更新 clicked 之前
    - (@) 比断点好使的场景 : 跨模块的执行顺序
      - 临时 debug 方法
        - 可考虑挂靠在一些上下文对象 (如 component, 并可输出一下有利于区别上下文的状态)
        - 方便统一做一些处理, 如重构, 去除, 或内部打印调整
    - (x) default value  
    - (x) value 控制
    - (x) isInitialSelected
    - (x) 为什么 clicked 还是会是 false 呢?
        - 还有个禁用 demo 的问题
        - (@) brick 调试时, 记得 demo 内可能有多实例
- (!) getSnapshot ...
    - (x) comp.xxx
        - (x) 挪动
        - (x) 引用
        - (x) state 类型调整
    - (x) 对比 & update state
    - (x) click on panel 的更改
- (!) clicked 方案
    - (x) 已加 clicked
    - (x) 需要有 selected state (不用 state)
        - (x) init
        - (x) isAllSelected
    - () 初始化
        - (-) 可能需要还是放在 state 里头
        - (-) 还是不行, 因为 clicked 状态, 应该是一种不引发 view 本身发生渲染的状态
        - 但 getDerivedStateFromProps 是一个 static 方法, 所以可能也不适用
    - (x) 关闭行为
        - handlePanelChange
        - checkCouldClosePanel
    - (x) 去掉全局 init undefined 状态
    - () time value 不需要 undefined
    - (x) 点击时, 标记 "selected"
    - (x) 最后的点击, 如有需要, 关闭弹层
    - [react comp](https://reactjs.org/docs/react-component.html)
- (x) 可能还存在 : 面板关闭之后, 将 selected 都设置为 true 的考虑
- (-) 可能还可考虑 : 首次选择, 不允许失焦关闭?
    - 取消了 "hover out" 关闭, 所以体验上应该符合预期
