Splice()方法不起作用

入门小子

我的React.js应用程序中的splice()方法存在一些问题。

因此,这是一个示例应用程序删除现在不起作用。怎么了 部分代码:

class CardList extends React.Component {
  static propTypes = {
    students: React.PropTypes.array.isRequired
  };
  // ADD DELETE FUNCTION
  deletePerson(person) {
    this.props.students.splice(this.props.students.indexOf(person), 1)
    this.setState()
  }
  render() {
    let that = this
    return <div id='list'>
      {this.props.students.map((person) => {
        return <Card
          onClick={that.deletePerson.bind(null, person)}
          name={person.name}>
        </Card>
      })}
    </div>
  }
}

class Card extends React.Component {
  render() {
    return <div className='card'>
       <p>{this.props.name}</p>
      {/* ADD DELETE BUTTON */}
      <button onClick={this.props.onClick}>Delete</button>
    </div>
  }
}

http://codepen.io/azat-io/pen/Vaxyjv

德米特里·涅夫佐罗夫(Dmitriy Nevzorov)

你的问题是当你打电话时

onClick={that.deletePerson.bind(null, person)} 

您将this绑定null所以,你的内部deletePerson功能thisnull代替实际的组成部分。您应该将其更改为

onClick={that.deletePerson.bind(this, person)}

并且一切都会按预期工作=)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章