如何从React导航堆栈配置中访问默认参数?

时间:2019-01-08 14:17:55

标签: react-native react-navigation react-navigation-stack

我想根据路由在堆栈导航器配置中设置默认参数,这样我就可以重用单个组件并将所有值保留在同一位置。

我一直在尝试遵循documentation并在堆栈导航器配置中实现默认参数,但是它们似乎没有被传递。

const SuggestionsStack = createStackNavigator(
  {
    Suggestions: {
      screen: SuggestionsScreen,
      params: {
        linkUrl: `${UrlConstants.REST_URL}`,
        screenType: `${SuggestionsType.ALL_SUGGESTIONS}`,
      },
    },
    Suggestion: SuggestionScreen,
    SuggestionCreate: SuggestionCreateScreen,
  },
); 

但是,当我尝试从屏幕上访问参数时:

console.log(this.props.navigation.state);

控制台输出:

[16:12:43] Object {
[16:12:43]   "key": "id-1546956760520-1",
[16:12:43]   "params": Object {
[16:12:43]     "handleCleanAsync": undefined,
[16:12:43]     "refreshList": undefined,
[16:12:43]   },
[16:12:43]   "routeName": "Suggestions",
[16:12:43] }

在配置内部陈述的参数无处可寻。 我在做什么错了?

this.props.navigation.state

用于检查当前屏幕中的整个可用输出,并且如我们所见,在配置中指定的“ linkUrl”和“ screenType”参数不可用。

2 个答案:

答案 0 :(得分:0)

const linkUrl = this.props.navigation.getParam(“linkUrl”);

因此,您可以实现传递的值。

答案 1 :(得分:0)

@sdkcy的答案应该可以达到目的,但是您也可以在组件中包括默认参数,如下所示:

const linkUrl = this.props.navigation.getParam("linkUrl", `${UrlConstants.REST_URL}`);

您可以了解有关此here的更多信息。