Redux形式的字段数组,删除函数引发奇怪的错误

时间:2018-09-16 06:19:07

标签: javascript arrays reactjs redux redux-form

这是我的情况,

我有一个对象数组,该对象数组通过redux-form字段数组显示,看起来像

  [{
    index: 0,
    overlapRecord: '127.0.0.1'
  },
  {
    index: 1,
    overlapRecord: '127.0.0.1'
  }],

我的代码类似

<div className = "delete" onClick = {()=>field.remove(index)}> DeleteButton </div>

当我尝试执行“单击”时,出现以下错误:

"Cannot use 'in' operator to search for 2 in" at deleteInWithPath.

关于错误原因的任何想法都可能非常重要   感谢。

堆栈跟踪: enter image description here

2 个答案:

答案 0 :(得分:2)

您需要为on click事件提供回调 像

onclick={
 ()=>{
      field.remove(index)
     }
}

答案 1 :(得分:0)

我知道我对这个答案有些迟了,但是如果其他人碰巧遇到相同的问题:

我们在代码库中遇到了同样的问题,经过一两天的寻找解决方案后,我们发现问题出在我们的验证程序内部。

我们正在返回:

const Button = Styled.button.attrs({ className: 'my-class-name' })`
    color: green;
`

export default () => (
    <ReactPaginate
      ...
      breakClassName='my-class-name' />
)

并将其更改为:

const errors = {
  arrayFieldName: ''
};

它正常工作。

您可以在他们的Redux Form FieldArray Example中看到,如果没有错误并且数组中有信息,他们将返回一个空数组;如果没有数据,则返回const errors = { arrayFieldName: [] };