Triggers React onClick持续触发
当我触发Triggers React onClick持续触发,triggers,onclick,reactjs,Triggers,Onclick,Reactjs,当我触发onClick时,即使事件也会持续触发1000多次。我似乎不知道这是从哪里来的。我已将onClick更改为onMouseover,以查看它是否继续触发,但事件仅触发一次 我正在使用:react 0.13.3 有什么想法吗 var React=require('React'); var AppActions=require('../../actions/app actions.js'); var FileAmount=React.createClass({ getInitialState
onClick
时,即使事件也会持续触发1000多次。我似乎不知道这是从哪里来的。我已将onClick
更改为onMouseover
,以查看它是否继续触发,但事件仅触发一次
我正在使用:react 0.13.3
有什么想法吗
var React=require('React');
var AppActions=require('../../actions/app actions.js');
var FileAmount=React.createClass({
getInitialState:函数(){
返回{
金额:this.props.amount,
config:this.props.config
};
},
handleClick:函数(e){
var name=e.target.name;
如果(名称==‘减少’){
如果(this.state.amount>1){
这是我的国家({
金额:(this.state.amount-1)
});
AppActions.updateAmount(this.props.index,(this.state.amount-1))
}
}否则{
这是我的国家({
金额:(this.state.amount+1)
});
AppActions.updateAmount(this.props.index,(this.state.amount+1))
}
},
handleChange:函数(e){
var金额=e.目标值;
这是我的国家({
金额:金额
});
AppActions.updateAmount(this.props.index,amount)
},
render:function(){
var config=this.state.config
返回(
{config.filelist_quantity}:{this.state.amount}{config.filelist_pieces}
);
}
});
module.exports=FileAmount代码>可能会添加e.preventDefault();添加到handleClick方法将停止启动此循环。可能会添加一个e.preventDefault();使用handleClick方法将停止启动此循环。我删除了为浏览器同步代理设置添加的javascript。不知怎么搞砸了我的反应 我删除了为浏览器同步代理设置添加的javascript。不知怎么搞砸了我的反应 我在最初的帖子上留下了一条评论,但在第二次检查时,看起来很可能是你从Flux Store传下了props.amount
。如果是这种情况,那么您正在创建一个无限循环
handleClick
递增state.amount
,然后在调用AppAction后,应用商店用props.amount
更新组件,然后,onChange
触发,因为它与state.amount
绑定,然后onChange
更改state.amount
并在调用AppActions.updateAmount
时更改props.amount
每次更新道具
或状态
时,React将调用render()
方法。如果在执行render()
时有任何方法更新props
或state
,那么您很可能会遇到无限循环。我在原始帖子上留下了一条评论,但在第二次检查时,您很可能会从流量存储中传递props.amount
。如果是这种情况,那么您正在创建一个无限循环
handleClick
递增state.amount
,然后在调用AppAction后,应用商店用props.amount
更新组件,然后,onChange
触发,因为它与state.amount
绑定,然后onChange
更改state.amount
并在调用AppActions.updateAmount
时更改props.amount
每次更新道具
或状态
时,React将调用render()
方法。如果在执行render()
时有任何方法更新道具
或状态
,那么您可能会遇到无限循环。由于单击的气泡,我遇到了类似的情况。是否有任何父元素也可以触发相同的函数?由于点击冒泡,我遇到了类似的情况。是否有任何父元素也可以触发相同的函数?这段代码看起来有点可疑。您似乎有AppActions
,这意味着您有一个流量存储,但您仍然保持此组件中的状态。Flux的单向数据流的最大好处之一是,当涉及到应用程序状态时,只有一个真实来源,因此,如果您使用应用商店,则可以不使用组件自身的状态。此代码看起来有点可疑。您似乎有AppActions
,这意味着您有一个流量存储,但您仍然保持此组件中的状态。Flux单向数据流的最大好处之一是,当涉及到应用程序状态时,只有一个真实来源,因此,如果您使用应用商店,则可以不使用组件自身的状态。忽略上下文,这听起来像是对1000次点击事件的完全合理的解释:)忽略上下文,这听起来是对1000次点击事件的一个非常合理的解释:)