Reactjs 在react中是否可以将当前组件的状态作为参数发送给另一个外部方法 /**@jsx React.DOM*/ //创建一个登录组件 var Login=React.createClass({ displayName:'loginComp', getInitialState:函数(){ 返回{ id_uname:'u', id_pwd:'p' }; }, onChange:函数(e){ 如果(例如target.name==“用户名”) this.setState({id_uname:e.target.value}); 其他的 setState({id_pwd:e.target.value}); }, handleSubmit:函数(e){ console.log(this.state.id\u uname); console.log(this.state.id_pwd); }, 渲染:函数(){ var objState=this.state; var asd=“asd”; 返回( 提交 ); } }); var sub=功能(状态){ log('--OUTSIDE--'); console.log('--',state); }; React.renderComponent( , 文件正文 );

Reactjs 在react中是否可以将当前组件的状态作为参数发送给另一个外部方法 /**@jsx React.DOM*/ //创建一个登录组件 var Login=React.createClass({ displayName:'loginComp', getInitialState:函数(){ 返回{ id_uname:'u', id_pwd:'p' }; }, onChange:函数(e){ 如果(例如target.name==“用户名”) this.setState({id_uname:e.target.value}); 其他的 setState({id_pwd:e.target.value}); }, handleSubmit:函数(e){ console.log(this.state.id\u uname); console.log(this.state.id_pwd); }, 渲染:函数(){ var objState=this.state; var asd=“asd”; 返回( 提交 ); } }); var sub=功能(状态){ log('--OUTSIDE--'); console.log('--',state); }; React.renderComponent( , 文件正文 );,reactjs,Reactjs,当我点击按钮时,它应该转到sub方法。。相反,子方法响应每个状态更改,最后当我按下按钮时,它将转到默认的handleSubmit方法。。救命 当你写作时 onClick={this.props.handleSubmit(this.state) || this.handleSubmit} 您将立即调用this.props.handleSubmit处理程序,并将其结果设置为onClick处理程序。我猜您应该改为执行部分应用程序,您可以使用.bind: onClick={this.props.ha

当我点击按钮时,它应该转到sub方法。。相反,子方法响应每个状态更改,最后当我按下按钮时,它将转到默认的handleSubmit方法。。救命

当你写作时

onClick={this.props.handleSubmit(this.state) ||  this.handleSubmit}
您将立即调用
this.props.handleSubmit
处理程序,并将其结果设置为onClick处理程序。我猜您应该改为执行部分应用程序,您可以使用
.bind

onClick={this.props.handleSubmit.bind(null, this.state)}

(另外,最好将特定的状态键显式地传递给处理程序,否则在将来进行更改时可能会意外地传递内部状态。)

Hi。。谢谢你的帮助。。通过绑定,我获得状态,但它是初始状态,而不是最新状态。。在我上面的例子中,输入值之后,它只返回“u”和“p”。如何绑定最新状态。@user3205633 Ben的修复对我有效
this.state
是通过引用传递的,因此您将始终在
sub
中获得正确的值。您可以看到它在这个JSFIDLE中工作: