⭐️ 养成了坏习惯

2021-08-04

这段时间我有很多不良习惯,晚睡,喜欢偷懒,学习没目标,起码没动力,开源项目没进展。说白了还是感觉赚到的东西少了,身心也很疲惫。就和我做视频没人看一样,现在总感觉学什么都难,找不回当初那种「学会了/做出来了」的那种喜悦感了。

开源项目也是,做的东西相对平庸,感觉没有什么太大的亮点,知道并使用的人并不太多。真要问我想做什么,其实想重构下方块播放器,这玩意的现有代码有 Bug,且打算参考 React 这边写组件的经验重新来过(还是原生)

测试群有一个特别奇葩的问题,在 Antd 的 InputNumber 组件里面输入 45 会变成 4.00 和 5.00,而我电脑效果正常是 45.00。她是在 Safari 下测试的,我的版本是 14.1.2,而她的比我的旧,我也没办法装回旧版,暂时无法得出具体结论...

不过下午我的 SearchParams Hooks 又有了新进展。昨天发现的问题其实是我 State 设置值的时候,没有手动结束后续逻辑的执行所致。主要是为了保持简洁,有个需求得在设置 Params 之前检测值是否为空,为空的时候需要将对应的键与值从对象里移除。

const setParamsByKey = (name: string, value: any) => {
  // 没有值的直接从状态里面删除
  if(!value){
    setParams((prevStat: any) => {
      let a = {...prevStat};

      delete a[name];

      return a;
    })

    return; // 这里没 Return,导致下面的逻辑也执行了一次
  }
  // 否则插入进去
  setParams((prevStat: any) => {
    return {
      ...prevStat,
      [name]: value
    }
  })
}

这个更改影响到了 Antd 的一个 Radio Group 组件,我现在的解决方案就是把它的 value 参数改成或运算符,是一个比较蠢但非常有效的办法。

// 记录性 Params
let [searchParams, setSearchParams, setSearchParamsByKey] = useSearchParams({
  page: 1
});

<Radio.Group disabled={stat.loading} className={styles.group} value={searchParams.type || ""} onChange={ev => setSearchParamsByKey("type", ev.target.value, { page: 1 })}>
  <Radio.Button value="">All</Radio.Button>
  <Radio.Button value="unused">Unused</Radio.Button>
  <Radio.Button value="used">Used</Radio.Button>
</Radio.Group>

这样我初始化 SearchParams Hooks 的时候,type 即便不存在,Antd 组件也会默认视作为选择了 All 这个选项了。

无聊
概览页 时间轴
奇趣音乐盒 技术源于 Kico Player
Emmm,这里是歌词君