javascript - 未选中复选框时从数组中删除元素(过滤方法不起作用?)

标签 javascript reactjs

我有这个状态变量

const [validMonths2019, setValidMonths2019] = useState([])

现在,当选中复选框时,将调用事件处理程序

   <Form.Check label='Januar 2019' id='2019' onChange={(event) => handleCheck('01', event)} />

这是事件处理程序

  function handleCheck (value, event) {
    const months2019 = [...validMonths2019]
    if (event.target.id === '2019' && event.target.checked) {
      console.log(value) // value is 01
      months2019.push(value)
      setValidMonths2019(months2019)
    } else if (event.target.id === '2019' && !event.target.checked) {
      console.log(value) // value is 01
      months2019.filter(item => item !== value)
      console.log(months2019)// months2019 is still the same array.
      setValidMonths2019(months2019)
    } 
  }

过滤器方法没有执行任何操作。数组保持不变。

最佳答案

过滤器不会改变数组,而是返回一个新数组,因此您需要捕获它的值

const myNewArray = months2019.filter(item => item !== value)
console.log(myNewArray) //<-- Here is your filtered array

关于javascript - 未选中复选框时从数组中删除元素(过滤方法不起作用?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61051645/

相关文章:

javascript - Objective-C 方法/函数调用。 (来自 JavaScript 示例)

javascript - 如何在react对象中使用if else条件

javascript - ExtJS:HTMLEditor 在 Accordion 重新展开时丢失内容

JavaScript棋盘游戏: looking for optimization

javascript - Many() 与 redux-orm 中相同模型的关系

javascript - 超时后组件路由器的状态

javascript - 将一个小型 React 应用程序与一个简单的 html/css/js 网站结合起来

javascript - onclick 更改div 样式+ onclick 外部div 移除样式更改

javascript - 将参数传递给 React 中的 props 函数

node.js - React.js 项目中缺少依赖项