在控制台中显示为 [object Object] 而不是字符串的对象数组
Array of objects being displayed as [object Object] and not as strings in console
我不明白为什么会这样
我已经手动添加了样本数据,稍后我会推送更多数据。
最终我想在平面列表中显示数据。
请帮助我,这对我的项目非常重要。
谢谢
代码:
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);
});
}
由于您要连接字符串,因此会调用对象的 toString
方法,即 returns '[Object object]'。您可以将 +
替换为逗号 ,
以单独评估 console.log
中的每个变量。 :
let object = {
title: 'test1',
count: 10
}
// concatenation
console.log('object : ' + object);
// individual evaluation.
console.log('object : ', object);
"" + {}
的结果总是 [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))
我不明白为什么会这样 我已经手动添加了样本数据,稍后我会推送更多数据。 最终我想在平面列表中显示数据。 请帮助我,这对我的项目非常重要。 谢谢 代码:
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);
});
}
由于您要连接字符串,因此会调用对象的 toString
方法,即 returns '[Object object]'。您可以将 +
替换为逗号 ,
以单独评估 console.log
中的每个变量。 :
let object = {
title: 'test1',
count: 10
}
// concatenation
console.log('object : ' + object);
// individual evaluation.
console.log('object : ', object);
"" + {}
的结果总是 [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))