Javascript 如何使用Redux在子组件中触发表单提交?
我有这样一个表单组件:Javascript 如何使用Redux在子组件中触发表单提交?,javascript,reactjs,redux,Javascript,Reactjs,Redux,我有这样一个表单组件: var React = require('react'), ReactRedux = require('react-redux'); var Form = React.createClass({ render: function(){ return ( <form onsubmit={this.onsubmit} action={this.props.action}> {this.props.children}
var React = require('react'),
ReactRedux = require('react-redux');
var Form = React.createClass({
render: function(){
return (
<form onsubmit={this.onsubmit} action={this.props.action}>
{this.props.children}
</form>
);
},
// Method for parent component to call
submit: function() {
// do submission and return Promise so caller can take actions
},
onsubmit: function(e) {
// validation, make requests, etc
}
});
function mapStateToProps(state) {
return state;
}
module.exports = ReactRedux.connect(mapStateToProps)(Form);
var React=require('React'),
ReactRedux=require('react-redux');
var Form=React.createClass({
render:function(){
返回(
{this.props.children}
);
},
//要调用的父组件的方法
提交:函数(){
//完成提交和返回承诺,以便调用者可以采取行动
},
提交人:函数(e){
//确认、提出请求等
}
});
函数MapStateTops(状态){
返回状态;
}
module.exports=ReactRedux.connect(mapStateToProps)(表单);
在组件的渲染中,我有
我不能做这个.refs.form.submit()代码>因为此.refs.form
指向连接器。据我所知,连接器是减速器更新道具的漏斗,但是这样做并不能触发对submit
的调用
用例基本上是让表单从另一个操作提交,这将启动表单组件应该做的事情,例如验证和XHR请求
我可以做React.findDOMNode(this.refs.form).submit()
,但这并不能回答从外部命中组件方法的实际问题
我做错了什么?如果需要,您可以获取包装组件实例:
@DaveStein嗯,以前是这样,但现在我看不到了。如果他们的空闲时间没有超负荷,我可以问:D@DaveStein:)我必须把它重新添加到文档中。
this.refs.form.getWrappedInstance().submit()