Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Redux在子组件中触发表单提交?_Javascript_Reactjs_Redux - Fatal编程技术网

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()