Javascript 未定义不是react native中的对象错误
我试图通过使用react navigation按下侧菜单中的一个按钮来创建到屏幕的路线。当我尝试实现它时,会出现以下错误: undefined不是对象(计算“\u this.props.user.Range”) 错误标志在此处指出错误: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,
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}
}
}