渲染后React-Native Navigator选项卡不更新

时间:2020-06-25 17:50:41

标签: react-native react-redux

我想开始在我的应用程序中使用导航器,但是似乎遇到了问题。

我在默认情况下处于关闭状态的屏幕上有一个开关。按下时,它应该调用一个函数并打开。当我直接调用我的函数时,这种方法毫无问题。

  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吗?

1 个答案:

答案 0 :(得分:0)

然后..我搞砸了。这确实是一个范围问题。万一有人觉得有用,我会附上我所做的。

更改了没有箭头符号的函数声明

toggleSwitch(value){

home_render(){

然后在打电话给他们时,我使用了.bind

 component={this.home_render.bind(this)}/>