React, 通过外部变量触发更新,我用一个无用的state的做媒介

322 阅读1分钟

前提:由于我想以每部机器设置一个开关来定义 true或false,如果公用一个state不行,机器数不确定,如果以机器号来遍历设置state,这就有点过分了,打算用一个外部变量obj,来匹配key:value, 再用一个state作为媒介加载组件属性上

haha.png

machineNos.forEach(item => {
    ldrMachineId[item.ldr_machine_id] = false
})

const showMore = async (record) => {
    ldrMachineId[record.ldr_machine_id] = true;
    getMoreStat((pre) => !pre)
})
  • 变量ldrMachineId 是一个Obj,储存键值对
  • 通过点击事件来改变键值对的值
  • moreStat这个状态每次点击后都取反
  • moreStat这个状态强行挂载到<ProcessUtils>组件上,即使这个state毫无用途
  • 目的就是:通过state的改变,来触发页面更新机制,这种媒介机制state,我们常用new Date传入

之前写class component组件时,有个 this.forceUpdate() 方法,也能强行更新页面,绕过了state的改变


结语

前端react QQ群:788023830 ---- React/Redux - 地下老英雄

前端交流 QQ群:249620372 ---- FRONT-END-JS前端

(我们的宗旨是,为了加班,为了秃顶……,仰望大佬),希望小伙伴们加群一起学习