【发布时间】:2019-05-25 10:41:54
【问题描述】:
嘿,我有点卡在这个问题上。整个问题是我不能在 navigationOptions 中使用状态。所以我尝试了这个:
我声明我让let isFilterVisible: boolean = false;
有一个 navigationOptions 块,我在 onPress 事件中调用函数。
static navigationOptions = ({ navigation }: NavigationInjectedProps) => ({
headerRight: (
<FilterButton onPress={() => {Installations.handleFilterVisibility(isfilterVisibile)}}/>
),
});
我处理值的简单 static 函数
static handleFilterVisibility(filterVisibility: boolean){
isfilterVisibile = !filterVisibility;
}
然后它作为道具传递给孩子
<Filter isFilterVisible={isfilterVisibile}/>
一切似乎都很好,但是当我尝试在子组件中记录道具时。
ComponentDidUpdate 甚至 ComponentWillReceiveProps 也不会记录任何内容。
有什么想法可能是错误的吗?
【问题讨论】:
-
这些函数以小写
c开头;有没有可能因为你有ComponentDidUpdate,他们一开始就没有被叫到? -
最好提供整个代码sn-p。
-
是的,尝试在codesandbox.io上创建minimal reproducible example。
-
@ChrisG 只是我的错字。它在代码中是小写的。关于codesanbox。想试试,但我的项目真的很复杂,很难将它复制到 sanbox。
-
不要复制整个项目。您需要创建一个重现问题的最小示例。 (这是让人们调试代码的技巧)
标签: javascript typescript react-native ecmascript-6 jsx