我正在尝试删除确认模式。
handleDelete (){
console.log('handleDelete')
const { something} = this.state
confirm({
title: 'Are you sure you want delete?',
content: 'Press Ok to continue, Cancel to return',
onOk () {
console.log('onOK')
this.setState({ something: [] })
}
})
}
按下删除按钮后,将显示确认模式。如果用户按下确定,那么它将删除确认模式后面的内容。
但删除无法完成。我有错误消息:
TypeError: this is undefined
在这一行:
this.setState({ something: [] })
我是否尝试在未安装的组件上设置状态? 那么正确的方法是什么?
答案 0 :(得分:0)
您尚未发布组件的代码,但如果您使用的是asset.blade.php
组件,那么在class
内声明的任何方法都应该class
{{1}对bind
实例的对象,这样您就可以访问{"生活"的this
对象。在这个实例中。
这通常在class
的{{1}}中完成:
state
另一种方法是使用ES6 arrow functions,它将使用constructor
关键字的词汇上下文,这意味着,如果你的处理程序在class
内声明,那么词汇上下文此方法是constructor(props){
super(props);
this.handleDelete = this.handleDelete.bind(this);
}
本身,因此this
关键字将引用class
。
class
答案 1 :(得分:0)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="table_id">
<tr><th>row id</th><th>column 1</th><th>column 2</th></tr>
<tr>
<td><input class="input-class" value="row id 1"> 1
</td><td>row 1</td><td>row 1</td>
</tr>
<tr>
<td><input class="input-class" value="row id 2"> 2
</td><td>row 2</td><td>row 2</td>
</tr>
<tr>
<td><input class="dont-filter" value="row id 3"> 3
</td><td>row 3</td><td>row 3</td>
</tr>
</table>
答案 2 :(得分:0)
您可以使用箭头功能,它起作用。
onOk: () => {
console.log('onOK')
this.setState({ something: [] })
}