React-native-router-flux: Sugira um novo recurso para este plugin. Pode adicionar o protótipo 'onPress' à cena

Criado em 20 abr. 2016  ·  3Comentários  ·  Fonte: aksonov/react-native-router-flux

Versão

  • react-native-router-flux v3.24.0
  • react-native v0.24.0

    Novo recurso

Quero adicionar uma ação à guia, assim:
<Scene key="main" tabs={true} ...> <Scene key="AAAA" component={AAAPage} .../> <Scene key="Button" onPress={()=> ... } .../> <Scene key="CCCC" component={CCCPage} .../> </Scene>
o 'botão' do scence pode adicionar o protótipo onPress para vincular uma ação.

Comentários muito úteis

corrigir a função react-native-router-flux / 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();
        }
    }

...

Reagir arquivos nativos têm esta aparência:

        <Scene key="main" tabs={true}>
            ...
            <Scene key="OtherPage" component={OtherPageModal} modal={true} onPress={()=>alert("Test")} ... />
            ...
        </Scene>

Todos 3 comentários

IMO, isso está fora do escopo deste projeto. Esta é uma pilha de navegação.

Além disso, adicionar esse novo recurso pode interromper significativamente as chamadas onPress de componentes downstream ou pode introduzir atrasos em visualizações complexas; por exemplo, visualizações usando ListView

Você pode fazer isso simplesmente adicionando onPress na visualização superior de cada uma de suas páginas.

corrigir a função react-native-router-flux / 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();
        }
    }

...

Reagir arquivos nativos têm esta aparência:

        <Scene key="main" tabs={true}>
            ...
            <Scene key="OtherPage" component={OtherPageModal} modal={true} onPress={()=>alert("Test")} ... />
            ...
        </Scene>

perfeito!!!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

vinayr picture vinayr  ·  3Comentários

sylvainbaronnet picture sylvainbaronnet  ·  3Comentários

maphongba008 picture maphongba008  ·  3Comentários

VictorK1902 picture VictorK1902  ·  3Comentários

wootwoot1234 picture wootwoot1234  ·  3Comentários