Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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 无法访问子组件中的所有道具数据_Javascript_Arrays_Reactjs_Api_React Props - Fatal编程技术网

Javascript 无法访问子组件中的所有道具数据

Javascript 无法访问子组件中的所有道具数据,javascript,arrays,reactjs,api,react-props,Javascript,Arrays,Reactjs,Api,React Props,从父组件(主组件)传递完整的API调用时,我无法将其作为子组件(属性)中的道具访问。子组件中的道具看起来好像尚未完全获取 i、 e.props.housingData.address将在子组件中生成数据,但props.housingData.address不会。错误消息: 错误:“无法访问未定义的行。” ``` 导出默认类Home扩展React.Component{ ... componentDidMount(){ 变量设置={ “异步”:true, “跨域”:正确, “url”: "https

从父组件(主组件)传递完整的API调用时,我无法将其作为子组件(属性)中的道具访问。子组件中的道具看起来好像尚未完全获取

i、 e.props.housingData.address将在子组件中生成数据,但props.housingData.address不会。错误消息:

错误:“无法访问未定义的行。”

```
导出默认类Home扩展React.Component{
...
componentDidMount(){
变量设置={
“异步”:true,
“跨域”:正确,
“url”:
"https://realtor.p.rapidapi.com/properties/v2/list- 
租金?
排序=相关性和城市=纽约%20纽约%20城市和州\u代码=纽约&限额=200&偏移量=0“,
“方法”:“获取”,
“标题”:{
“x-rapidapi-host”:“realtor.p.rapidapi.com”,
“x-rapidapi-key”:“API_密钥”
}
}
$.ajax(设置).done(响应=>{
//要对其应用响应迭代的数组
让dataArray=[];
// 
//**我相信问题就在这里**
for(设i=0;i{dataLoaded&&this.state?
: }
)
}
}
```
导出默认函数属性(道具){
...
让propData=props.housingData
const propertyInfo=info.slice(0,showItems).map((信息,项目)=>(
{info.address}
))

我已更正此问题。在将API响应发送到子组件之前,必须将其分配给父组件(主)中的对象。(属性) 这是对子组件上的条件渲染集的补充,可确保api中的所有数据都已获取并分配给道具,以便在子组件中使用

export default class Home extends React.Component {
  
 ... 
        $.ajax(settings).done(response=>{
            let dataArray = []; <--- // Set new empty array
            for(let i = 0; i < response.properties.length; i++){
                let obj = {};  <---- // Set Object
                obj = {...response.properties[i]}  <---- // Assigned response to object
                dataArray.push(obj);  <--- // Pushed to new array
            }
            this.setState({housingData: dataArray}); <--- // Send to state
        });
导出默认类Home.Component{
... 
$.ajax(设置).done(响应=>{

让dataArray=[];在从api获取数据之前,不要呈现子组件,或者对响应中的每个键进行适当的检查。顺便说一句,您的问题标题误导了主体。我感谢您的反馈。稍后将尝试再次使用它。此外,我正在寻找编辑标题的方法。第一次张贴在此处。再次感谢。
export default class Home extends React.Component {
  
 ... 
        $.ajax(settings).done(response=>{
            let dataArray = []; <--- // Set new empty array
            for(let i = 0; i < response.properties.length; i++){
                let obj = {};  <---- // Set Object
                obj = {...response.properties[i]}  <---- // Assigned response to object
                dataArray.push(obj);  <--- // Pushed to new array
            }
            this.setState({housingData: dataArray}); <--- // Send to state
        });