我想开始在我的应用程序中使用导航器,但是似乎遇到了问题。
我在默认情况下处于关闭状态的屏幕上有一个开关。按下时,它应该调用一个函数并打开。当我直接调用我的函数时,这种方法毫无问题。
toggleSwitch = (value) => {
// TODO: Try to connect and send location
if (value)
{
// some func
}
this.setState({switchValue: value})
}
home_render = () => {
return(
<View style={styles.container}>
{/*onValueChange will be triggered after switch condition changes*/}
<Switch
trackColor={{false: 'gray', true: 'teal'}}
thumbColor="white"
onValueChange = {this.toggleSwitch}
value = {this.state.switchValue}
/>
</View>
);
}
但是,当我使用导航器功能调用它时,就会出现问题。一旦布尔值确实更改为True(如我从日志中看到的),一旦按下它,开关将不会打开。但是开关保持关闭状态,不再让我更改值。下面是我的导航功能。我不确定问题是否正在呈现?因为该值应该更新。
<NavigationContainer>{
<Stack.Navigator initialRouteName="Home">
<Stack.Screen name="Login" component={this.login_render}/>
<Stack.Screen name="Home" component={this.home_render}/>
</Stack.Navigator>
}</NavigationContainer>
任何和所有帮助将不胜感激,我已经考虑了好几天,却无法解决。我应该改为redux或smth吗?
答案 0 :(得分:0)
然后..我搞砸了。这确实是一个范围问题。万一有人觉得有用,我会附上我所做的。
更改了没有箭头符号的函数声明
toggleSwitch(value){
和
home_render(){
然后在打电话给他们时,我使用了.bind
component={this.home_render.bind(this)}/>