开发者问题收集

React 组件事件处理程序 - 无法访问事件

2016-06-09
1210

这是一个基本的 JavaScript 问题,但还是让我在谷歌上搜索了一段时间。根据 这篇文章 ,下面的代码应该可以工作,但是我在 saveBubble 中得到了 event.target is not a function 错误。当我在调试器中尝试 event 时,错误显示 Uncaught: illegal accessarguments 数组具有所需的事件,但是为什么当我调用 event 时它不起作用?

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>
    );
  }
}
1个回答

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

我猜您实际上收到的是 event.target.attr 不是函数 错误消息,因为 dom 元素(如 event.target)没有此方法,例如 jquery 对象没有。

为了更清晰一点,我相信这应该适合您:

saveBubble(event) {
  Bubbles.insert({
    text: event.target.value
  })
}
dougshamoo
2016-06-09