reactjs TypeError:undefined不是对象(计算“label. toString”)

h9vpoimq  于 2023-03-08  发布在  React
关注(0)|答案(1)|浏览(80)

我正在使用React Native,当我使用如下JavaScript函数时,我遇到了错误:

const User = ({navigation, route}) => {

  //SIGN OUT
  function signOutHandler() {
    signOut(auth)
    .then(() => {
      console.log('user signed out')
      navigation.navigate('SignIn')
    })
    .catch(err => {
      // console.log(err.message)
    })
  }

  let label = route.params.name
  label.toString().charAt(0).toUppercase();
  console.log(label)

  return (
    <View style={styles.userContainer}>
      <View style={styles.bio}>
        <IconButton name="account-circle" size={70} style={styles.pp} />
        <View style={styles.cred}>
          <Text style={styles.text}>{label}</Text>
          <Text style={styles.text}>{route.params.email}</Text>
          <Text style={styles.text}>You have currently <Text style={styles.bold}>{route.params.notes.length}</Text>  notes.</Text>
        </View>
      </View>
      
      <View style={styles.bc}>
        <Button title='Delete Account' color={'red'} onPress={signOutHandler} />
        <Button title='Sign Out' onPress={signOutHandler} />
      </View>
    </View>
  )
}

export default User

我也不能用.length()得到一个数组的长度。它抛出了同样的错误。我想我犯了一个简单的错误。如果你能帮助我,我会很高兴的。

42fyovps

42fyovps1#

如果label的值为undefined,则意味着route.params.name不存在-name不是params上的属性。您可以使用optional chaining来防止错误。
在JavaScript中,我们使用简单的length而不是length()来获得length of arrays,因为它是一个属性而不是一个方法。

相关问题