मैं एक मॉडल प्रारूप लॉन्च करने के लिए प्रतिक्रिया-बूटस्ट्रैप का उपयोग कर रहा हूं।बाह्य घटक की प्रतिक्रिया-बूटस्ट्रैप कॉल विधि
है कि मैं एक मॉडल घटक PopupForm
, एक रूप घटक ProductForm
बनाया करने के लिए, एक उत्पाद घटक, उत्पाद घटक में मैं
<ModalTrigger
modal={<PopupForm form={<ProductForm ref="pform" data={this.props.prod_data} />}/>}>
<Button bsStyle='primary' bsSize='small' style={{marginRight:'5px'}} >
<span className="glyphicon glyphicon-pencil" />
</Button>
</ModalTrigger>
PopupForm
फोन:
var PopupForm = React.createClass({
render: function(){
return (
<Modal {...this.props} bsStyle='primary'
style={{width:200}} title='Edition' animation={false}>
<div className='modal-body'>
{this.props.form}
</div>
<div className='modal-footer'>
<Button onClick={this.props.form.submit()}>Editer</Button>
<Button onClick={this.props.onRequestHide}>Close</Button>
</div>
</Modal>
)
}
});
इस onClick
editer पर, मैं ProductForm
घटक की विधि submit
पर कॉल करना चाहता हूं, ProductForm
घटक PopupForm
पर भेजता है प्रोप फॉर्म, मैं इसे {this.props.form}
की तरह प्रदर्शित करता हूं, लेकिन मैं विधि {this.props.form.submit()}
पर कॉल नहीं कर सकता हूं असल में मैं उत्पादफॉर्म विधि को ट्रिगर करने के लिए मोडल बटन का उपयोग करना चाहता हूं यदि यह संभव नहीं है तो मैं ProductForm के अंदर सबमिट बटन का उपयोग करूंगा।
यहाँ मेरी ProductForm
है:
var ProductForm = React.createClass({
componentDidMount: function() {
this.props.submit = this.submit;
},
getInitialState: function() {
return {canSubmit: false};
},
enableButton: function() {
this.setState({
canSubmit: true
});
},
disableButton: function() {
this.setState({
canSubmit: false
});
},
submit: function (model) {
alert('ok');
},
render: function() {
return (
<Formsy.Form className="" name="test" onValidSubmit={this.submit} onValid={this.enableButton} onInvalid={this.disableButton}>
<CsInput value={this.props.data.name}
label="Nom" id="product_name"
name={this.props.data.name}
validations={{matchRegexp: /^[A-Za-z0-9]{1,30}$/}}
validationError={validations_errors[1]} required/>
{/*<button type="submit" disabled={!this.state.canSubmit}>Submit</button>*/}
</Formsy.Form>
);
}
});
अग्रिम धन्यवाद।
यह करने का 'प्रतिक्रिया तरीका' है। आपको जो कुछ भी चाहिए, उसे कई घटकों (क्रियाओं या डेटा) द्वारा साझा किया जाता है, एक सामान्य माता-पिता से आना चाहिए –