Javascript 反应长按错误:无法读取未定义的接头属性
我还是React/JS新手,目前正在一个移动网站上工作,希望实现一个不带按钮的删除。为此,我使用了一个长按事件,允许用户长按一个输入字段,然后在满足时间要求后删除该字段 我想我应该这样拼接输入字段:Javascript 反应长按错误:无法读取未定义的接头属性,javascript,reactjs,Javascript,Reactjs,我还是React/JS新手,目前正在一个移动网站上工作,希望实现一个不带按钮的删除。为此,我使用了一个长按事件,允许用户长按一个输入字段,然后在满足时间要求后删除该字段 我想我应该这样拼接输入字段: handleButtonPress() { this.buttonPressTimer = setTimeout(() => this.inputs.splice(index, 1), 950); } 长按事件起作用,除非站点在满足时间事件后收到错误: TypeError:无
handleButtonPress() {
this.buttonPressTimer = setTimeout(() => this.inputs.splice(index, 1), 950);
}
长按事件起作用,除非站点在满足时间事件后收到错误:
TypeError:无法读取未定义的属性“splice”
| }
52 |
53 | handleButtonPress() {
> 54 | this.buttonPressTimer = setTimeout(() => this.inputs.splice(index, 1), 950);
| ^ 55 | }
56 |
57 | handleButtonRelease() {
我尝试使用此函数,但收到相同的错误:
handleButtonPress() {
const newInput = this.state.inputs
this.buttonPressTimer = setTimeout(() => newInput.inputs.splice(index, 1), 950);
}
下面是我如何完全尝试实现此功能的:
Edit.jsx
从“React”导入React
导出默认类编辑扩展React.Component{
建造师(道具){
超级(道具)
this.handleButtonPress=this.handleButtonPress.bind(this)
this.handleButtonRelease=this.handleButtonRelease.bind(this)
this.state={inputs:[],text:'}
this.onDragEnd=this.onDragEnd.bind(this);
}
车把钮扣压力机(){
this.buttonPressTimer=setTimeout(()=>this.inputs.splice(索引,1),950);
}
把手按钮释放装置(){
clearTimeout(此.buttonPressTimer);
}
this.setState({input})}
render(){
返回(
//删除输入的映射函数
)
}
}
}
我删除了这里的大部分代码,因为它与问题无关。请注意,对于本示例中未包含的输入,有一个
.map
函数。我不知道如何解决这个问题。您必须始终如一地使用对象关键点。给定构造函数:
this.state = { inputs: [], text: ''}
仅定义了this.state.inputs
,未定义this.inputs
,类似于以下代码中的this.state.inputs.inputs
:
const newInput = this.state.inputs
...newInput.inputs
这一行
this.setState({input})}
应该做什么?这是一个未配对的}
的语法错误,它是输入
而不是输入
,无论哪种方式,它都是一个引用错误,因为两个变量都不存在
const newInput = this.state.inputs
...newInput.inputs