Реагируйте на навигацию, не переходя на другой экран

Я пытаюсь перейти на другой экран, используя TouchableHighlight / кнопку, но он не переходит на другой экран. ошибок нет. Ничего не происходит, когда я нажимаю кнопку TouchableHighlight / на том же экране.

trackButton() {
    const navigation = this.props.navigation;


    return (
        <View style={styles.footer}>
            {/* <TouchableHighlight underlayColor='transparent' onPress={() => this.gotoTrackingScreen()}> */}
            <TouchableHighlight underlayColor='transparent' onPress={() => this.props.navigation.navigate('faq')}>


                <Text style={this.trackingButtonStyleOS()}>
                    START TRACKING
                </Text>
            </TouchableHighlight>  
            {/* <Button
      onPress={() => this.props.navigation.navigate('Tracking')}
      title="Chat with Lucy"
    /> */}

        </View>
    );
}

в настоящее время мы используем реагирующую навигацию:1.0.1 бета

StackNavigator реализован в index.android.js

const BeaconApp = StackNavigator({ Home: { screen: App, navigationOptions: { header: null } }, Tracking: { screen: TrackingScreen, navigationOptions: { header: null } }})

1 ответ

Я думаю, что название вашего компонента не соответствовало стандартам. Я видел, что вы пытаетесь создать компонент trackButton, который позже будет реализован TrackingScreen.React определит функцию как компонент, если он написан в UpperCamelCase , а не в lowerCamelCase. Реквизит не будет получен в вашем компоненте, потому что он будет считаться обычной функцией, а обычная функция не имеет функции передачи реквизита.

Из-за этого ваш компонент trackButton не получил props.navigation, и при нажатии кнопки ничего не происходит.

Другие вопросы по тегам