在Reactjs中绑定后,函数仍然未定义

时间:2018-07-12 20:16:01

标签: javascript reactjs

我尝试了这段代码。一切对我来说似乎很好,但是编译器说的onDismiss是未定义的?请帮我解决这个问题。...

import React, { Component } from 'react';

const list=[{title:'React',id:0},{title:'Redux',id:1}];

class App extends Component {

    constructor(props) {
    super(props);
    this.state={list,};
    this.onDismiss=this.onDismiss.bind(this); }

    onDismiss(id){

    const isnotid=item=>item.id!==id;
    const uplist=this.state.list.filter(isnotid);
    this.setState({list : uplist});
  }
    render() {

    return( <div className="App">
         {this.state.list.map(item=>
         <div key={item.id}>
         <span>
          {item.title}
         </span>
         <button onClick={()=>onDismiss(item.id)} type="button">
          Dismiss
         </button>
         </div>)}</div>);
    }
}
export default App;

这是一个显示列表的简单应用。删除按钮用于删除任何不需要的内容。基本上,我只是在练习Reactjs,但是不知道为什么我的Ondismiss(通过更新组件状态来更改内容的功能)函数如编译器所描述的那样是未定义的。 修复了错别字和小错误,但onDismiss函数仍然未定义!

1 个答案:

答案 0 :(得分:1)

替换

<button onClick={()=>onDismiss(item.id)} type="button">

<button onClick={()=>this.onDismiss(item.id)} type="button">