أرغب في إضافة إجراء إلى علامة التبويب ، مثل هذا:
<Scene key="main" tabs={true} ...>
<Scene key="AAAA" component={AAAPage} .../>
<Scene key="Button" onPress={()=> ... } .../>
<Scene key="CCCC" component={CCCPage} .../>
</Scene>
يمكن لـ "الزر" إضافة onPress protype لربط إجراء.
IMO هذا خارج نطاق هذا المشروع. هذا هو مكدس التنقل.
يمكن أن تؤدي إضافة هذه الميزة الجديدة أيضًا إلى تعطيل مكالمات onPress بشكل كبير من مكونات المصب أو يمكن أن تحدث تأخيرات في طرق العرض المعقدة ؛ على سبيل المثال وجهات النظر باستخدام ListView
يمكنك تحقيق ذلك ببساطة عن طريق إضافة onPress في العرض العلوي لكل صفحة من صفحاتك.
إصلاح رد الفعل الأصلي-جهاز التوجيه-تدفق / src / TabBar.js onSelect وظيفة.
...
export default class extends Component {
onSelect(el){
const state = this.props.navigationState;
if (!Actions[el.props.name]){
throw new Error("No action is defined for name="+el.props.name+" actions:"+JSON.stringify(Object.keys(Actions)));
}
// rewrite Actions[el.props.name]();
if (!el.props.modal) {
Actions[el.props.name]();
}
else {
el.props.onPress();
}
}
...
رد فعل الملفات الأصلية تبدو كالتالي:
<Scene key="main" tabs={true}>
...
<Scene key="OtherPage" component={OtherPageModal} modal={true} onPress={()=>alert("Test")} ... />
...
</Scene>
في احسن الاحوال!!!
التعليق الأكثر فائدة
إصلاح رد الفعل الأصلي-جهاز التوجيه-تدفق / src / TabBar.js onSelect وظيفة.
رد فعل الملفات الأصلية تبدو كالتالي: