Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未定义不是react native中的对象错误_Javascript_React Native_Components_Native_React Navigation - Fatal编程技术网

Javascript 未定义不是react native中的对象错误

Javascript 未定义不是react native中的对象错误,javascript,react-native,components,native,react-navigation,Javascript,React Native,Components,Native,React Navigation,我试图通过使用react navigation按下侧菜单中的一个按钮来创建到屏幕的路线。当我尝试实现它时,会出现以下错误: undefined不是对象(计算“\u this.props.user.Range”) 错误标志在此处指出错误: RangeValues: this.props.user.Range 我尝试导航到的其他组件如下所示: import React, {Component} from 'react' import { StyleSheet,

我试图通过使用react navigation按下侧菜单中的一个按钮来创建到屏幕的路线。当我尝试实现它时,会出现以下错误:

undefined不是对象(计算“\u this.props.user.Range”)

错误标志在此处指出错误:

RangeValues: this.props.user.Range
我尝试导航到的其他组件如下所示:

  import React, {Component} from 'react'
    import {
      StyleSheet,
      View,
      Text,
      Switch,
    } from 'react-native'

    import Slider from 'react-native-multislider'

    export default class Profile extends Component {
       state = {
        RangeValues: this.props.user.Range,
        distanceValue: [this.props.user.distance]
      }
    render() {
        const {name, work, id} = this.props.user
        const {RangeValues, distanceValue} = this.state
    return (
          <View style={styles.container}>
            <View style={styles.profile}>
              <Text style={{fontSize:20}}>{name}</Text>
            </View>
            <View style={styles.label}>
              <Text>Distance</Text>
              <Text style={{color:'darkgrey'}}>{distanceValue}km</Text>
            </View>
            <Slider
              min={1}
              max={100}
              values={distanceValue}
              onValuesChange={val => this.setState({distanceValue:val})}
              onValuesChangeFinish={val => this.updateUser('distance', val[0])}
            />
            <View style={styles.label}>
              <Text>Age Range</Text>
              <Text style={{color:'darkgrey'}}>{ageRangeValues.join('-')}</Text>
            </View>
            <Slider
              min={1}
              max={200}
              values={RangeValues}
              onValuesChange={val => this.setState({RangeValues:val})}
              onValuesChangeFinish={val => this.updateUser('Range', val)}
            />
          </View>
        )
      }
    }
我尝试从主屏幕组件导航。我在Home组件中为此使用的功能是:

() => this.props.navigation.navigate('Profile', { user: this.state.user })

有人知道如何修复此错误,以便我从主组件导航到配置文件组件吗?

我认为您应该从构造函数绑定道具:

export class MyClass extends Component {
  constructor(props) {
    super(props);
    if (!this.state) { 
      this.state = {
        data: props.myData
      }
    }

    render() {DO THE JOB HERE}
  }
}
然后您可以访问
this.state
而不是
state


有关更多说明,由于构造函数尚未通过,因此尚未提供
props
。请参阅组件文档:

如果您
控制台。在构造函数中记录
道具会怎么样?当我这样做时,我会得到[object]。它说数据是未定义的,我只是不确定如何或在哪里定义它?我不知道哪个是未定义的et,哪个是[对象]?基本上,您应该使用
console.log(“描述符”,myObject)以查看对象(导入点是逗号,而不是myObject前面的+)。然后你可以用chrome检查Obect:inspect for android(我不记得是iOS…)错误说undefined不是一个我认为是this.state的对象。当我控制台记录道具时,我得到了[object]
export class MyClass extends Component {
  constructor(props) {
    super(props);
    if (!this.state) { 
      this.state = {
        data: props.myData
      }
    }

    render() {DO THE JOB HERE}
  }
}