реагировать навигационная вкладка навигатор внутри статического макета - PullRequest
0 голосов
/ 01 мая 2018

Могу ли я достичь этого макета?

Эскиз макета:

enter image description here

часть заголовка является общей для всех вкладок. это часть макета на этом экране. и каждая вкладка содержит scrollView.

Кстати, я попытался определить навигатор вкладок как компонент и использовать его внутри метода рендеринга вместе со статическим компонентом заголовка.

render() {
  return ( 
    <StaticHeaderComponent />
    <MyTabNavigator />
  ) 
}

это не работает. навигатор по вкладкам вообще не рендерится.

Ответы [ 2 ]

0 голосов
/ 25 июля 2019

Для реагирования на навигацию 3. + Подходящий раздел Распространенные ошибки документации. Вы можете найти документацию и пример здесь .

В частности, вам нужно выставить static router и передать navigation в качестве реквизита. При необходимости вы можете настроить стили вкладок.

const TabbyNavigator = createMaterialTopTabNavigator({   
  Tab: TabScreen,   
  AnotherTab: AnotherTabScreen
});

class SomeScreen extends React.Component {   
  static router = TabbyNavigator.router;

  render() {
    return (
      <TabbyNavigator navigation={this.props.navigation} />
    );   
  } 
}
0 голосов
/ 01 мая 2018

Вот простой рабочий пример:

MyTabNavigator.js

import React, { Component } from 'react'
import { View, Text, ScrollView } from 'react-native'
import { TabNavigator } from 'react-navigation'

class FirstTab extends Component {
    render() {
        return (
            <ScrollView>
                <Text>first tab</Text>
            </ScrollView>
        )
    }
}

class SecondTab extends Component {
    render() {
        return (
            <ScrollView>
                <Text>second tab</Text>
            </ScrollView>
        )
    }
}

const MyNavigator = TabNavigator({
    first: { screen: FirstTab },
    second: { screen: SecondTab }
},
{
    tabBarPosition: 'top'
})

export default MyNavigator

App.js

import React, { Component } from 'react'
import { View } from 'react-native'
import MyTabNavigator from './MyTabNavigator'

export default class App extends Component {
    render() {
        return (
            <View style={{flex: 1}}>
                <View // place your StaticHeaderComponent here
                    style={{height: 100, backgroundColor: 'green'}}
                />
                <MyTabNavigator/>
            </View>
        )
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...