警告:在现有状态转换期间(例如在`render`中)无法更新。渲染方法应该是props和state的纯函数

时间:2019-06-24 09:31:22

标签: react-native react-router

当我单击touchableopacity按钮导航到同一选项卡中的另一个屏幕时,收到此警告,并且无法导航。当我运行时,我在屏幕上看到了导航页面,但是按Tab键会将我重定向到相同的选项卡,但是,这些按钮仍然无效

我制作了堆栈导航器和标签导航器,并将两者合并。但使用this.props.navigation.navigate("checkout")无效

<View style={{flexDirection:'column',alignItems:'center'}}>
   <TouchableOpacity 
      activeOpacity = { .5 } 
      onPress{this.props.navigation.navigate('CatWise') }
   >
      <Image style={{height:35,width:35,resizeMode:"cover"}} source={require('../assets/cat_image.png')}/>
      <Text>Electronics</Text>
   </TouchableOpacity>
</View>

“我希望在单击该可触摸不透明度之后,它应该将我重定向到猫式屏幕” “我收到警告,因为= =在现有状态转换过程中无法更新(例如在render之内。)渲染方法应该纯粹是props和state的函数。”

1 个答案:

答案 0 :(得分:3)

将onPress函数更改为此:

<TouchableOpacity 
  activeOpacity = { .5 } 
  onPress{() => this.props.navigation.navigate('CatWise') }

>

传递函数时,它将在渲染过程中直接执行,这意味着函数执行的结果将传递给onPress处理程序,而不传递给函数本身