Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应长按错误:无法读取未定义的接头属性_Javascript_Reactjs - Fatal编程技术网

Javascript 反应长按错误:无法读取未定义的接头属性

Javascript 反应长按错误:无法读取未定义的接头属性,javascript,reactjs,Javascript,Reactjs,我还是React/JS新手,目前正在一个移动网站上工作,希望实现一个不带按钮的删除。为此,我使用了一个长按事件,允许用户长按一个输入字段,然后在满足时间要求后删除该字段 我想我应该这样拼接输入字段: handleButtonPress() { this.buttonPressTimer = setTimeout(() => this.inputs.splice(index, 1), 950); } 长按事件起作用,除非站点在满足时间事件后收到错误: TypeError:无

我还是React/JS新手,目前正在一个移动网站上工作,希望实现一个不带按钮的删除。为此,我使用了一个长按事件,允许用户长按一个输入字段,然后在满足时间要求后删除该字段

我想我应该这样拼接输入字段:

  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