首页 > 解决方案 > 如何从反应导航堆栈配置中访问默认参数?

问题描述

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

我一直在尝试遵循文档并在堆栈导航器配置中实现默认参数,但它们似乎没有通过。

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”参数不可用。

标签: react-nativereact-navigationreact-navigation-stack

解决方案


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

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

您可以在此处阅读有关此内容的更多信息。


推荐阅读