Javascript React引导表单仅在第二次按enter键时提交

Javascript React引导表单仅在第二次按enter键时提交,javascript,twitter-bootstrap,reactjs,Javascript,Twitter Bootstrap,Reactjs,我正在制作一个简单的表单,我想在按下enter键时进行操作,但由于某些原因,它只在第二次按下enter键时有效,而不是第一次按下enter键 组件的render(): render() { return ( <form onSubmit={this.handleSubmit}> <FormGroup controlId="formBasicText"> <ControlLabel>

我正在制作一个简单的表单,我想在按下enter键时进行操作,但由于某些原因,它只在第二次按下enter键时有效,而不是第一次按下enter键

组件的render():

render() {
    return (
        <form onSubmit={this.handleSubmit}>
            <FormGroup controlId="formBasicText">
                <ControlLabel>MyLabel</ControlLabel>
                <FormControl
                    type="text"
                    value={this.state.value}
                    placeholder="Enter something"
                    onChange={this.handleChange}
                />
                <FormControl.Feedback />
            </FormGroup>
        </form>
    );
}
为什么这只适用于第二次回车

编辑:要清楚,这只是目标代码的一个子集。试着这样做当然会失败。我只是认为无论是在对象的渲染还是handleSubmit方法中都可能出现问题

以防万一,这里是构造函数:

constructor(props) {
    super(props);
    this.state = {
        value: "",
    };
    this.handleChange = this.handleChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
}

这可能是因为它将状态更新排队,而不是像使用this.setState时那样立即实现更改,因此调用函数时无法访问状态的新值


看看这里:

看起来像是在
myMethod({this.state.value})之后出错了。您是否尝试调试或检查控制台输出?这是我的代码的精简版本,我只显示了我认为可能导致错误的部分。构造器不在这里,一些辅助方法也不在这里。我的方法没有在这里介绍的内容中定义,因此,如果您尝试只运行这段代码,它当然会失败。一切正常。控制台正在记录,没有错误。只是它只在第二次按enter键时起作用。在按enter键时,组件之外的任何东西都可以调用
event.preventDefault()
?我的意思是,如果你在应用程序中只有你的组件,这会发生吗?对不起,我不理解你的一些措辞,但这个组件是相当孤立的。在my
handleSubmit()
Method之外,不应该调用任何东西:
e.preventDefault()
,请检查您的应用程序是否存在此构造:
var stopped=false;addEventListener('keypress',函数(e){if(!stopped){e.preventDefault();stopped=true}})
constructor(props) {
    super(props);
    this.state = {
        value: "",
    };
    this.handleChange = this.handleChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
}