Javascript 无法访问props.navigation.state变量
当我试图将props.navigation.state变量保存到state并在组件上使用它们时,出现了未定义的错误Javascript 无法访问props.navigation.state变量,javascript,reactjs,react-native,Javascript,Reactjs,React Native,当我试图将props.navigation.state变量保存到state并在组件上使用它们时,出现了未定义的错误 componentDidMount = () => { this.setState({ services: this.props.navigation.state.params.data.vendor_types_and_services, loading: false }) } 然后,当我显示数据时,它会错误地崩溃 {!
componentDidMount = () => {
this.setState({
services: this.props.navigation.state.params.data.vendor_types_and_services,
loading: false
})
}
然后,当我显示数据时,它会错误地崩溃
{!loading && <Text>{services.length}</Text>}
{!加载&&{services.length}
undefined不是对象(正在评估“services.length”)
当使用正则表达式this.props.navigation.state.params.data.vendor\u types\u和\u services
时,它工作得很好,我不确定问题出在哪里,这是appNavigator上的一个不同路径,除了组件将接收props
或组件将装载
之外,还有什么替代方法
请帮忙 尝试使用
console.log()解构和调试
const{params}=props.navigation.state;
您能展示一下您是如何从其他组件接收这些道具的吗?替换
{!加载&&{services.length}
与
{!加载&&this.state.services!==null&&{this.state.services.length}
并确保已将此状态变量定义到构造函数中,如下所示:
构造函数(道具){
超级(道具);
此.state={
服务:空,
加载:正确
};
}
props在创建组件时被接收,如果它被创建为未定义,并且在其他时间您收到了对props的更新,并且您的组件已经安装,您的props将不会被更新。我正在使用react routernavigate('Studio',{data:item})以props的形式发送数据。