反应导航未定义错误

Posted

技术标签:

【中文标题】反应导航未定义错误【英文标题】:React-navigation undefined Error 【发布时间】:2017-09-01 16:17:10 【问题描述】:

我有一个有趣的问题:所以我导入了这个

<TouchableOpacity onPress=() => this.props.navigation.navigate('Feed') style=styles.buttonContainer>
   <Text  style=styles.buttonText>
        LOGIN
   </Text>                 
</TouchableOpacity>   

我创建的表单中的按钮, 我将它导入到我想像这样加载表单的屏幕:

<KeyboardAvoidingView behavior='padding' style=styles.container>

              <View style=styles.logo>
                <Text style=fontSize: 64, color: '#34B3E4'>Partner<Text style=fontSize: 64, color: '#0077B5'>Up</Text></Text>
                <Text style=fontSize: 13, opacity: 0.8, color: '#0077B5'>We connect you. You work easier.</Text>
              </View>
              <LoginForm/>           <-------------------Here is the import
              <View style=styles.accountLogin>
                    <TouchableOpacity onPress=() => this.props.navigation.navigate('Forgot')>
                        <Text style=opacity: 0.9,color:'#34B3E4' >Forgot your password? </Text>
                    </TouchableOpacity>
              </View>  
</KeyboardAvoidingView>

但我的 onpress 转换屏幕功能不想中继并引发未定义的错误 即使在我的路由器中也无法导入某些内容并在任何地方呈现 onpress 功能:

Feed: 
     screen: Feed,
     navigationOptions: 
       title: 'Mentor',
       header:
         right: //Going to be the users profile picture
       <Icon  
       onPress=() => this.props.navigation.navigate('Profile')
       name="user" 
       color='#0077B5'
       size=30
        />,
        left: //Messages
       <Icon  
       name="message" 
       color='#0077B5'
       size=30
        />,
       titleStyle:  color: '#0077B5' ,
      
     
   ,

我到底要做什么

Here be the logcat error msg

【问题讨论】:

是否有未定义错误的 logcat?如果是,请包含它。 【参考方案1】:

您需要将属性传递给您的子组件

改变

<LoginForm/>

<LoginForm navigation=this.props.navigation/>

要让它在导航器中工作,请使用参考

<Navigator
 ref='navigator'
 ...
/>

然后

<Icon
  navigator=this.refs.navigator
/>

【讨论】:

谢谢你,这帮助我解决了我的错误!当我在路由器中使用该 onpress 功能时会怎样?如何将属性传递给该特定图标?引发类似错误。

以上是关于反应导航未定义错误的主要内容,如果未能解决你的问题,请参考以下文章

未定义不是本机反应中的对象错误

未定义的“this.props.navigation.state.props.p”导航反应原生

无法读取未定义的属性“推送”以进行反应使用历史[重复]

反应和流星“未捕获的类型错误:无法读取未定义的属性'createElement'”

反应 - 未捕获的类型错误:无法读取未定义的属性“toLowerCase”

错误:未捕获 [TypeError:无法读取未定义 Jest 反应测试的属性“x”