反应状态变化不会重新渲染?

时间:2021-03-28 19:19:15

标签: reactjs

这是我的状态

Number of primes wanted?:
=========================
10

=========================

=========================
2, 3, 5, 7, 11, 13, 17, 19, 23, 29,
=========================
Press any key to continue . . .

它应该挂的是一个输入类型复选框的checked属性,看起来像这样

const [task,setTask] = useState(
{
  _id:"z"
  name:"Test",
  description:"TestTestTest",
  status:false,
  sub_task:[
  {
    name:"TestSub",
    description:"TestSub",
    status:false,
  }
]
}
)

 const test = e =>{
    if(task._id=== "z"){
      let check = e.target.checked
      let sub = task.sub_task.slice();
      if(check) sub.forEach(el => el.status= check);
      setSelTask({...task,status:check,sub_task:sub})
    }else{
      setSelTask({...task,status:check})
    }
  }

但它没有改变......在阅读了一些类似的其他答案后,我认为问题是因为我通过引用传递数组,但我尝试了不同的东西,比如 JSON.parse(JSON.stringify()) 但它是不工作

1 个答案:

答案 0 :(得分:1)

您输入了一些拼写错误,并且调用了错误的函数: https://codesandbox.io/s/amazing-cartwright-swcmo