React-native-router-flux: اقترح ميزة جديدة لهذا البرنامج المساعد. يمكن إضافة النموذج الأولي "onPress" إلى المشهد

تم إنشاؤها على ٢٠ أبريل ٢٠١٦  ·  3تعليقات  ·  مصدر: aksonov/react-native-router-flux

إصدار

  • رد فعل - جهاز التوجيه الأصلي - تدفق v3.24.0
  • رد فعل أصلي v0.24.0

    ميزة جديدة

أرغب في إضافة إجراء إلى علامة التبويب ، مثل هذا:
<Scene key="main" tabs={true} ...> <Scene key="AAAA" component={AAAPage} .../> <Scene key="Button" onPress={()=> ... } .../> <Scene key="CCCC" component={CCCPage} .../> </Scene>
يمكن لـ "الزر" إضافة onPress protype لربط إجراء.

التعليق الأكثر فائدة

إصلاح رد الفعل الأصلي-جهاز التوجيه-تدفق / 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>

ال 3 كومينتر

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>

في احسن الاحوال!!!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

xnog picture xnog  ·  3تعليقات

sarovin picture sarovin  ·  3تعليقات

vinayr picture vinayr  ·  3تعليقات

YouYII picture YouYII  ·  3تعليقات

maphongba008 picture maphongba008  ·  3تعليقات