我使用react JS并将数据存储在Firebase数据库的状态中。我试图迭代通过posts数组并附加输入数据,即"answer";这是与传递给postAnswerHandler的id值匹配的关键对象的答案。
我试图使用if语句来说明如果键匹配变量id,则将数据附加到该对象。
我不能让这个if语句工作,尽管
state = {
posts: [{"key":"-MRp_IicTzCu5AineeBB",
"answer":"hhhh"},
{"key":"-MRpgKN1bFHC3pUSGoqn",
"answer":"gd"},
{"key":"-MRpkG08WrtPyW2rVKPb",
"body":"post 3",
"title":"post 3",
"type":"Credit"}]
}
postAnswerHandler = ( answer,id ) => {
const data = this.state.posts;
for (var key in data) {
if (key === id) {
*** APPEND DATA HERE***
};
var obj = data[key];
var obj_1 = JSON.stringify(obj);
for (var prop in obj) {
if(obj.hasOwnProperty(prop)){
}
}
}
const postData = JSON.stringify(this.state.posts);
您的'key'实际上是数组的索引,而不是您要查找的实际键。
你应该遍历数组中的对象,并将每个名为"key"的键与你正在寻找的id进行比较。
for (const obj of data) {
if (obj['key'] === id) {
// do something with obj['answer']
}
}