react - ts中,render内不允许匿名函数,如果不使用匿名函数,则提示不允许更新state

const renderItem = (item: string, index: number) => {
  console.log(warpProps.handleItemDelete)
  return (
    <List.Item>
      <p onClick={warpProps.handleItemDelete(index)}>{item}</p>
    </List.Item>
  )
}

报错

Warning: Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state.

如果是匿名函数

const renderItem = (item: string, index: number) => {
  console.log(warpProps.handleItemDelete)
  return (
    <List.Item>
      <p onClick={() => warpProps.handleItemDelete(index)}>{item}</p>
    </List.Item>
  )
}

报错

Lambdas are forbidden in JSX attributes due to their rendering performance impact
阅读 4.8k
2 个回答

报错是tslint报错,我把匿名函数限制关了就好了

新手上路,请多包涵

直接

<div onClick={this.onChange}></div> 

就可以了

推荐问题