Javascript 反应组件事件处理程序-can';无法访问事件
这是一个基本的JavaScript问题,但还是让我在谷歌上搜索了一会儿。基于,下面的代码应该可以工作,但是我得到的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:
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,它似乎会起作用。你是对的。现在已经很晚了,我误读了错误。我仍然不明白为什么它会在控制台中向我抛出非法访问错误。是的,我自己以前从未见过这个错误。快速的谷歌显示至少有一些其他人也对它感到困惑,所以你并不孤单.你是对的。现在已经是深夜了,我误读了错误。我仍然不明白为什么它会在控制台中向我抛出非法访问错误。是的,我自己以前从未见过这个错误。快速的谷歌显示至少有一些人也对它感到困惑,所以你并不孤单。