反应警告预期在箭头函数array-callback-return的末尾返回一个值

时间:2018-11-07 22:29:07

标签: javascript reactjs

我有此按钮

<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([])
                }}
              >

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

我在堆栈上也发现了另一个类似的问题,但它们似乎与我的问题不一样

1 个答案:

答案 0 :(得分:1)

仅在rowthis.props.listTableCheckedItems中的情况下返回某些内容。

这里有几个问题。

1:如果不正确,您需要返回一些内容。

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

2:由于i为0,因此过滤器回调将为列表中的第一个元素返回falsy。除非有此意图,否则应返回truefalse

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