如何使用Redux触发子组件中的表单提交
How to trigger a form submit in child component with Redux?
我有一个这样的Form组件:
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);
在我渲染的组件中,我有<Form id="paymentform" ref="form" action="/self">
。
我不能做this.refs.form.submit();
因为this.refs.form
指向连接器。据我所知,连接器是减少器更新道具的通道,但是这样做不能触发对submit
的调用。
这个用例基本上是让表单从另一个动作提交,这将启动form组件应该做的事情,比如验证和XHR请求。
我可以做React.findDOMNode(this.refs.form).submit()
,但这并不能回答从外部击中组件方法的实际问题。
我在这里做错了什么?
如果需要,您可以使用getWrappedInstance
:
this.refs.form.getWrappedInstance().submit()
相关文章:
- HTML表单提交时未执行外部函数
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将图像上传ajax与表单提交ajax相结合
- Javascript无法处理表单提交
- 如何在我的情况下禁用表单提交
- 加载后的页面与ajax表单提交不起作用
- angularjs-控制器在表单提交时未调用
- 禁用带有字符白名单的表单提交
- 如何使用Google Analytics跟踪表单提交
- 使用javascript将表单提交到iframe目标中
- e.preventDefault在表单提交时被忽略
- AngularJS JQuery Ajax表单提交等效
- JavaScript表单提交帮助
- PHP表单提交和重定向
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- setTimeOut AFTER jQuery表单提交
- 从函数中选择要触发表单提交的正确元素
- JavaScript表单提交没有't fire asp服务器端点击功能的提交按钮
- 如何使用Redux触发子组件中的表单提交
- React + Redux:提交多组件表单