react-native - 如何从反应导航堆栈配置中访问默认参数?
问题描述
我想根据路由在堆栈导航器配置中设置默认参数,以便我可以重用单个组件并将所有值保存在同一个位置。
我一直在尝试遵循文档并在堆栈导航器配置中实现默认参数,但它们似乎没有通过。
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”参数不可用。
解决方案
@sdkcy 的答案应该可以达到目的,但您也可以在组件中包含默认参数,如下所示:
const linkUrl = this.props.navigation.getParam("linkUrl", `${UrlConstants.REST_URL}`);
您可以在此处阅读有关此内容的更多信息。
推荐阅读
- api - 在 servicenow 创建新事件时触发 API 调用
- c# - 检查同一个 ID 是否已经有一个选中的复选框
- django-rest-framework - 在 Django REST Framework 中一起使用 ViewSet 和基于类的视图?
- java - 如何为图像按钮设置动画?
- javascript - 如何使用只有一个正确用户名和一个密码的 HTML 制作登录页面屏幕?
- json - 如何将数组 json 转换为 Angular 中的对象树
- reactjs - React-Redux Typescript,reducer 操作错误的类型
- python - 为什么我在heroku服务器中的Django迁移失败而在本地服务器中成功?
- android - 为谷歌地图动态创建/下载样式
- mongodb - 仅当文档其他字段在单个查询中更改时如何更新 MongoDB 中的更新时间字段