আমি মূলত প্রতিক্রিয়াতে ট্যাবগুলি তৈরি করার চেষ্টা করছি তবে কিছু সমস্যা রয়েছে।
এখানে ফাইল page.jsx
<RadioGroup>
<Button title="A" />
<Button title="B" />
</RadioGroup>
আপনি যখন বোতাম এ ক্লিক করেন, রেডিওগোষ্ঠী উপাদানটি বোতাম বি-নির্বাচন করতে হবে ।
"নির্বাচিত" এর অর্থ একটি রাজ্য বা সম্পত্তি থেকে শ্রেণি নাম
এখানে RadioGroup.jsx:
module.exports = React.createClass({
onChange: function( e ) {
// How to modify children properties here???
},
render: function() {
return (<div onChange={this.onChange}>
{this.props.children}
</div>);
}
});
এর উত্সটি Button.jsxআসলেই কিছু যায় আসে না, এর একটি নিয়মিত এইচটিএমএল রেডিও বোতাম রয়েছে যা নেটিভ ডোম onChangeইভেন্টটিকে ট্রিগার করে
প্রত্যাশিত প্রবাহটি হ'ল:
- বোতাম "এ" এ ক্লিক করুন
- বোতাম "এ" টি নেভিগেশন ডেমো ইভেন্ট, চেঞ্জকে ট্রিগার করে যা রেডিওগোষ্ঠী পর্যন্ত বুদবুদ হয়
- রেডিওগ্রুপ অন চেঞ্জ শ্রোতাদের বলা হয়
- রেডিও গ্রুপকে বোতাম বি-নির্বাচন করতে হবে । এটা আমার প্রশ্ন।
এখানে আমি যে প্রধান সমস্যাটির মুখোমুখি হচ্ছি তা হ'ল: আমি into োকাতে পারি না<Button>RadioGroup , কারণ এর গঠনটি এমন যে শিশুরা নির্বিচারে । অর্থাৎ মার্কআপ হতে পারে could
<RadioGroup>
<Button title="A" />
<Button title="B" />
</RadioGroup>
বা
<RadioGroup>
<OtherThing title="A" />
<OtherThing title="B" />
</RadioGroup>
আমি কয়েকটি জিনিস চেষ্টা করেছি।
প্রচেষ্টা করুন: ইন RadioGroupএর onChange হ্যান্ডলার সঠিক নয়:
React.Children.forEach( this.props.children, function( child ) {
// Set the selected state of each child to be if the underlying <input>
// value matches the child's value
child.setState({ selected: child.props.value === e.target.value });
});
সমস্যা:
Invalid access to component property "setState" on exports at the top
level. See react-warning-descriptors . Use a static method
instead: <exports />.type.setState(...)
প্রচেষ্টা করুন: ইন RadioGroupএর onChange হ্যান্ডলার সঠিক নয়:
React.Children.forEach( this.props.children, function( child ) {
child.props.selected = child.props.value === e.target.value;
});
সমস্যা: কিছুই হয় না, এমনকি আমি Buttonক্লাসকে একটি componentWillReceivePropsপদ্ধতিও দিই
চেষ্টা: আমি পিতামাতার কিছু নির্দিষ্ট অবস্থা বাচ্চাদের কাছে দেওয়ার চেষ্টা করেছি, তাই আমি কেবল পিতামাতার অবস্থা আপডেট করতে পারি এবং বাচ্চাদের স্বয়ংক্রিয়ভাবে প্রতিক্রিয়া জানাতে পারি। রেডিও গ্রুপের রেন্ডার ফাংশনে:
React.Children.forEach( this.props.children, function( item ) {
this.transferPropsTo( item );
}, this);
সমস্যা:
Failed to make request: Error: Invariant Violation: exports: You can't call
transferPropsTo() on a component that you don't own, exports. This usually
means you are calling transferPropsTo() on a component passed in as props
or children.
খারাপ সমাধান # 1 : শিশুদের বৈশিষ্ট্যগুলি পাস করতে সক্ষম হতে রেন্ডার সময়ে ক্লোন করতে রিট্যাক্ট -অ্যাডনস.জেএস ক্লোনওথপপস পদ্ধতি ব্যবহার RadioGroupকরুন
খারাপ সমাধান # 2 : এইচটিএমএল / জেএসএক্সের চারপাশে একটি বিমূর্তি প্রয়োগ করুন যাতে সম্পত্তিগুলিতে গতিশীলভাবে পাস করতে পারি (আমাকে হত্যা করুন):
<RadioGroup items=[
{ type: Button, title: 'A' },
{ type: Button, title: 'B' }
]; />
এবং তারপরে RadioGroupগতিশীলভাবে এই বোতামগুলি তৈরি করুন।
এই প্রশ্নটি আমাকে সাহায্য করে না কারণ আমার বাচ্চাদের তারা কী তা জেনে রেন্ডার করা দরকার
RadioGroupসম্ভবত এটি জানতে পারে যে এটির স্বেচ্ছাসেবী বাচ্চাদের কোনও ঘটনার প্রতিক্রিয়া জানাতে হবে? অগত্যা এটির শিশুদের সম্পর্কে কিছু জানতে হবে।