reactjs - 从导航道具设置初始状态
问题描述
我正在使用React Navigation在屏幕之间进行路由。我有一个初始屏幕,其中包含FlatList
我在传递这样的参数时路由到新屏幕的项目的 onclick。
props.navigation.navigate('Details', {
id: props.id,
title: props.title
});
在Details
屏幕中,我可以使用以下代码接收它,但是考虑到它是静态函数并且我无权访问this.setState()
.
static navigationOptions = ({navigation}) => {
const {params} = navigation.state;
console.log(params);
};
解决方案
这将允许您在构造函数中处理它,这是以前放置在 componentWillMount 中的任何东西可以去的另一个位置。
constructor(props) {
super(props)
this.state = {
params: props.navigation.state.params
}
}
作为参考,通过将 props 作为参数传递给构造函数,然后在它们上运行超级函数,您可以在调用任何其他生命周期函数之前设置初始状态或运行其他一次性函数。
推荐阅读
- python - 如何根据正则表达式模式将文本文件拆分为较小的文件?
- java - 打印没有哈希码的列表
- javascript - 如何将 fetch() 函数的结果传递给 React 上下文值,而不是我为钩子设置的默认值?
- reactjs - 使用 axios React 将 mp3 文件发布到烧瓶
- reactjs - 不能将 href 与 IconButtonProps 一起使用
- powershell - 用于检查文件夹/子文件夹的 Powershell 脚本
- javascript - 如何从 JQuery 中的表中获取值?
- javascript - JS Switch Case 不匹配正确的值
- python - ansible 集合异常:“CollectionModuleUtilLocator 只能定位在下方”,集合放错了位置?
- python - 无法注册 django 自定义模板标签