【问题标题】:Array of objects being displayed as [object Object] and not as strings in console [duplicate]对象数组在控制台中显示为 [object Object] 而不是字符串 [重复]
【发布时间】:2020-02-18 21:14:26
【问题描述】:

我不明白为什么会这样 我已经手动添加了示例数据,然后我稍后会推送更多数据。 最终我想在一个平面列表中显示数据。 请帮助我,这对我的项目非常重要。 谢谢 代码:

class TasksScreen extends Component {
constructor(props) {
  super(props);

  this.state = {
    tasks: [],
  };
  var tempTasks = [
    {
      key: 'abc',
      val: 'abc',
    },
  ];
  var that = this;

  var taskRef = database()
    .ref('/Tasks/' + auth().currentUser.uid)
    .on('value', dataSnapshot => {
      var key = dataSnapshot.key;
      console.log('UID KEY: ' + key);
      dataSnapshot.forEach(childSnaps => {
        var key = childSnaps.key;
        console.log('TASKID KEY: ' + key);
        childSnaps.forEach(taskData => {
          var taskKey = taskData.key;
          var taskVal = taskData.val();
          console.log('taskData KEY: ' + taskKey);
          console.log('taskData VAL: ' + taskVal);
          console.log('taskData.val().title: ' + taskVal);
          tempTasks.push({
            taskTitle: 'title',
            taskDescription: 'description',
            taskDueTime: 'time',
            taskDuedate: 'date',
          });
        });
      });
      console.log('tempTasks: ' + tempTasks);
      that.setState({tasks: tempTasks});
      console.log('STATE TASKS: ' + that.state.tasks);
    });
}

【问题讨论】:

  • "" + {} 将始终作为 [object object] 的结果,因此您应该将它们作为单独的参数传递,而不是连接值,即 console.log('str', object)

标签: javascript firebase react-native object react-native-flatlist


【解决方案1】:

由于您要连接字符串,因此会调用对象的toString 方法,该方法返回“[Object object]”。您可以用逗号替换 + , 来单独评估 console.log 中的每个变量。 :

let object = {
    title: 'test1',
    count: 10
}

// concatenation
console.log('object : ' + object);

// individual evaluation.
console.log('object : ', object);

【讨论】:

    【解决方案2】:

    "" + {} 将始终作为[object object] 的结果(因为字符串连接)所以不是连接值,你应该将它们作为单独的参数传递,即console.log('str', object),如果你需要它作为单个连接字符串你可以使用 JSON.stringify 然后连接它们

    let obj = {
      a: '123',
    }
    
    console.log("String" + obj)
    console.log("String", obj)
    console.log("String" + JSON.stringify(obj))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 2021-11-27
      • 2014-07-28
      • 1970-01-01
      • 2021-04-05
      • 2020-03-06
      相关资源
      最近更新 更多