【问题标题】:map function wont work what am i doing wrong?地图功能不起作用我做错了什么?
【发布时间】:2019-08-25 20:18:11
【问题描述】:

试图将此数组中的信息获取到组件上!不知道我做错了什么!!请救救我。下面是我的东西

所以我从 firebase 获取我的数据,然后我对它执行此操作

function snapshotToArray(snapshot) {
  var returnArr = [];

  snapshot.forEach(function(childSnapshot) {
    var item = childSnapshot.val();
    //item.key = childSnapshot.key;

    returnArr.push(item);
  });

  return returnArr;
};

export function allMyPropertiesDetailsFetch(currentscreen) {
  console.log("Called the property details");
  const { currentUser } = firebase.auth();
  console.log("gotthuser");
  console.log(firebase.database().ref(`/properties/`));
  var propertyref = firebase.database().ref(`/properties/`).orderByChild('userid').equalTo(currentUser.uid);

  propertyref.once('value', snapshot => {
    if (snapshot.exists()) {
      var Property = snapshotToArray(snapshot);
      //     console.log('Property: '+Property);
      currentscreen.setState({
        propertyinfo: Property
      });
    } else {
      //  console.log('There is no user who has email like '+ email)
    }
  })

}

我的数组看起来 [{"aptNumber":"","city":"","nickName":"","numberofbathrooms":"2","numberofbedrooms":"1","state":" ","streetName":"","streetNumber":"","typeof":"Apartment","userid":"sb7Hj93D08XiaRguQ4cbSjz4vXC3"}] 。我这样称呼它仍然不起作用。 var people = JSON.parse(JSON.stringify(this.state.propertyinfo)); console.log(persons);

let added_buttons_goes_here = people.map( (data, index) => { 返回 ( /// 传入删除按钮作为子项的伪代码 this._handleRemoveButton(data.key) } /> ) });

【问题讨论】:

  • 请同时添加您的代码。
  • 为什么在数组中添加/需要对象键。请删除它
  • 发布你的循环逻辑代码...
  • 向我展示您的完整代码。当您没有对数组中的键进行排序时,地图将不起作用。
  • 请展示您的尝试,以便我们提供帮助。

标签: javascript reactjs react-native


【解决方案1】:

这样设置你的数组。

let array = [
 {
   "aptNumber": "",
   "city": "",
   ...   
 },
 {
   "aptNumber": "",
   "city": "",
   ...    
 }
]

console.log(array.map(x => x.key));

【讨论】:

  • 可以接受,因为 OP 没有提供他们的循环逻辑。
【解决方案2】:

您正在处理的 Json 似乎是无效的。你如何生成这个 json 对象。如果您是在您的服务中生成此 json 的人,那么请尝试创建一个有效的 json 响应。 我已将您的格式设置如下:

[{"aptNumber": "", "city": "", "key": "6bba4c82-18e2-3c10-a798-028f42d97857", "nickName": "My name ", "numberofbathrooms": "2", "numberofbedrooms": "1", "state": "", "streetName": "Fskslal", "streetNumber": "Fjsl", "typeof": "Apartment", "userid": "sb7Hj93D08XiaRguQ4cbSjz4vXC3"}, 
{ "aptNumber": "", "city": "", "key": "714590f6-e8da-2d29-20c2-e5010a3a9df4", "nickName": "BATMAN", "numberofbathrooms": "2", "numberofbedrooms": "0", "state": "", "streetName": "", "streetNumber": "", "typeof": "Apartment", "userid": "sb7Hj93D08XiaRguQ4cbSjz4vXC3"},
{ "aptNumber": "", "city": "", "key": "bd2ad46a-f307-4f8e-1fc8-ba828b6651bc", "nickName": "NOT BATMAN", "numberofbathrooms": "0", "numberofbedrooms": "0", "state": "", "streetName": "", "streetNumber": "", "typeof": "Apartment", "userid": "sb7Hj93D08XiaRguQ4cbSjz4vXC3"} ]

如果您从其他方使用此 json,那么您将不得不通过将其保留为 String 来进行一些操作,但这不是一种执行/解析 json 响应的干净方式。

【讨论】:

  • 我认为这是问题所在!我只是在上午看看!我筋疲力尽
  • 我的数组看起来 [{"aptNumber":"","city":"","nickName":"","numberofbathrooms":"2","numberofbedrooms":"1", "state":"","streetName":"","streetNumber":"","typeof":"Apartment","userid":"sb7Hj93D08XiaRguQ4cbSjz4vXC3"}] .
【解决方案3】:

想通了

我在声明 这个.state{ 属性信息:''}

应该是什么时候 属性信息:[]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    相关资源
    最近更新 更多