Javascript 反应组件事件处理程序-can';无法访问事件

Javascript 反应组件事件处理程序-can';无法访问事件,javascript,mongodb,meteor,reactjs,event-handling,Javascript,Mongodb,Meteor,Reactjs,Event Handling,这是一个基本的JavaScript问题,但还是让我在谷歌上搜索了一会儿。基于,下面的代码应该可以工作,但是我得到的event.target不是saveBubble中的函数错误。在调试器中尝试event时,错误显示为Uncaught:非法访问参数数组具有所需的事件,但为什么在调用事件时它不起作用 export default class Bubble extends Component { saveBubble(event) { Bubbles.insert({ text:

这是一个基本的JavaScript问题,但还是让我在谷歌上搜索了一会儿。基于,下面的代码应该可以工作,但是我得到的
event.target不是
saveBubble
中的函数
错误。在调试器中尝试
event
时,错误显示为
Uncaught:非法访问
<代码>参数数组具有所需的事件,但为什么在调用
事件
时它不起作用

export default class Bubble extends Component {
  saveBubble(event) {
    Bubbles.insert({
      text: event.target.attr('value') // <- throws an error here
    })
  }

  body() {
    const { text } = this.props.bubble;

    if (text) {
      return text;
    }
    else {
      return (
        <input type='text' onBlur={ this.saveBubble.bind(this) }/>
      )
    }
  }

  render() {
    return (
      <div className='bubble-wrapper'>
        <div className='body'>
          { this.body() }
        </div>
      </div>
    );
  }
}
导出默认类气泡扩展组件{
保存气泡(事件){
气泡。插入({

text:event.target.attr('value')/我想您可能想要
event.target.value
而不是
event.target.attr('value')
。这将为您提供输入元素中的当前值,如中所述

我的猜测是,您实际得到的
event.target.attr并不是一个函数
作为错误消息,因为dom元素(比如event.target)没有这种方法,比如jquery对象会有这种方法

为了更清楚一点,我相信这对你来说应该是可行的:

saveBubble(event) {
  Bubbles.insert({
    text: event.target.value
  })
}

我认为您可能需要
event.target.value
而不是
event.target.attr('value')
。这将为您提供输入元素中的当前值,如中所述

我的猜测是,您实际得到的
event.target.attr并不是一个函数
作为错误消息,因为dom元素(比如event.target)没有这种方法,比如jquery对象会有这种方法

为了更清楚一点,我相信这对你来说应该是可行的:

saveBubble(event) {
  Bubbles.insert({
    text: event.target.value
  })
}

我猜
body()
函数中的
this
不是您认为的那样。请尝试将它绑定到
render()
@ivarni中的
saveBubble
body
this
是冒泡对象。我还注意到,如果我请求事件,它会给我“未捕获的非法访问”错误。但是如果我请求event.target,它似乎可以工作。我猜
body()函数中的
this
与您想象的不同。请尝试在
render()中绑定它
@ivarni在
saveBubble
body
中,
这个
就是Bubble对象我还注意到,如果我请求事件,它会给我“未捕获的非法访问”错误。但如果我要求event.target,它似乎会起作用。你是对的。现在已经很晚了,我误读了错误。我仍然不明白为什么它会在控制台中向我抛出非法访问错误。是的,我自己以前从未见过这个错误。快速的谷歌显示至少有一些其他人也对它感到困惑,所以你并不孤单.你是对的。现在已经是深夜了,我误读了错误。我仍然不明白为什么它会在控制台中向我抛出非法访问错误。是的,我自己以前从未见过这个错误。快速的谷歌显示至少有一些人也对它感到困惑,所以你并不孤单。