Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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 无法访问props.navigation.state变量_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript 无法访问props.navigation.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 }) } 然后,当我显示数据时,它会错误地崩溃 {!

当我试图将props.navigation.state变量保存到state并在组件上使用它们时,出现了未定义的错误

  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 router
navigate('Studio',{data:item})以props的形式发送数据。