-1

我想使用一个自定义组件,我需要它有导航道具才能在这个组件内导航。

现在我将导航作为经典道具传递:

<MyVideo videoSource={require('../Image/S01E01DB.mp4')}
         thumbnailSource={require('../Image/S01E01DB.mp4')}
         navigation={this.props.navigation}/>

但是,是否有可能总是让他像作为道具一样被设置?

我需要它来简化道具的使用。

4

1 回答 1

2

正如@jonrsharpe 在评论部分所说,navigation道具只会自动提供给使用createStackNavigator或其他react-navigation导航器声明的路线

您可以使用一个工具react-navigation将任何组件连接到您的父导航器:

import { withNavigation } from 'react-navigation';

class MyBackButton extends React.Component {
  render() {
    return <Button title="Back" onPress={() => { this.props.navigation.goBack() }} />;
  }
}
// withNavigation returns a component that wraps MyBackButton and passes in the
// navigation prop
export default withNavigation(MyBackButton);

在嵌套导航器的情况下,该withNavigation函数将获取组件的最近父级。

您将在此链接上找到更多信息

于 2018-07-20T13:54:15.387 回答