首页 > 解决方案 > 反应警告预计在箭头函数数组回调返回的末尾返回一个值

问题描述

我有这个按钮

<button
                className="waves-effect waves-light btn btn-secondary has-icon"
                onClick={() => {
                  const idSelected = []

                  const itemSelected = this.state.clientItemUser.filter((i, row) => {

                    if (this.props.listTableCheckedItems.indexOf(row) === -1) {
                      idSelected.push(i.clientid)
                      return i
                    }
                  })

                  const { setTableCheckedItems } = this.props
                  console.log('itemSelected > ', itemSelected)
                  this.setState({ clientItemUser: itemSelected, clientIdItemUser: idSelected })

                  setTableCheckedItems([])
                }}
              >

它可以工作并做应该做的事情,但我想摆脱这个警告“预计在箭头函数数组回调返回的末尾返回一个值”它说问题就在const itemSelected = this.state.clientItemUser.filter((i, row) =>我真的想学习的线上如何解决此警告,因为它不是唯一出现的地方,我相信理解这个我将能够找出其他警告,感谢您的时间和帮助

我在堆栈上查看了另一个类似的问题,但它们似乎与我的不同

标签: javascriptreactjs

解决方案


你只是在 in 的情况下返回一些row东西this.props.listTableCheckedItems

这里有几个问题。

1:如果不是真的,你需要返回一些东西。

if (this.props.listTableCheckedItems.indexOf(row) === -1) {
  idSelected.push(i.clientid)
  return i
} else {
  return ...
}

2:您的过滤器回调将为列表中的第一个元素返回 falsy,因为i它是 0。除非这是故意的,否则您应该返回trueor false

if (this.props.listTableCheckedItems.indexOf(row) === -1) {
  idSelected.push(i.clientid)
}
return this.props.listTableCheckedItems.indexOf(row) === -1

推荐阅读