我想根据路由在堆栈导航器配置中设置默认参数,这样我就可以重用单个组件并将所有值保留在同一位置。
我一直在尝试遵循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”参数不可用。
答案 0 :(得分:0)
const linkUrl = this.props.navigation.getParam(“linkUrl”);
因此,您可以实现传递的值。
答案 1 :(得分:0)
@sdkcy的答案应该可以达到目的,但是您也可以在组件中包括默认参数,如下所示:
const linkUrl = this.props.navigation.getParam("linkUrl", `${UrlConstants.REST_URL}`);
您可以了解有关此here的更多信息。