gpt4 book ai didi

javascript - 如何使用 Redux 在子组件中触发表单提交?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:44:09 25 4
gpt4 key购买 nike

我有一个这样的表单组件:

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指向连接器。据我了解,连接器是 reducer 更新 Prop 的 channel ,但是这样做不能触发对 submit 的调用。 .

用例基本上是让表单从另一个操作提交,这将启动表单组件应该执行的操作,例如验证和 XHR 请求。

我能做到React.findDOMNode(this.refs.form).submit()但这并没有回答从外部访问组件方法的实际问题。

我在这里做错了什么?

最佳答案

可以获取包装好的组件实例,如果需要,with getWrappedInstance :

this.refs.form.getWrappedInstance().submit()

关于javascript - 如何使用 Redux 在子组件中触发表单提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33000354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com