如何将这些对象数据放入 mui-datatable?
How can I put these object data to the mui-datatable?
我有来自 firestore 的这些 doses
对象。
我已经可以显示除对象之外的所有数据doses
class Users extends Component {
constructor() {
super();
this.state = { users: [] };
}
columns = [
"Name",
"Address",
"Vaccine",
];
componentDidMount() {
firestore
.collection("users")
.get()
.then((snapshot) => {
const users = [];
snapshot.forEach((doc) => {
const data = doc.data();
console.log("doses", data.doses);
doc.data().doses.forEach((index) => {
console.log(index.selectedVaccine);
});
users.push({
...((data.firstName && data.lastName) || data.middleName == " "
? {
Name:
data.firstName +
" " +
data.middleName +
"." +
data.lastName,
}
: {}),
Email: data.email,
Address: data.address,
});
});
this.setState({ users: users });
// console.log(snapshot)
})
.catch((error) => console.log(error));
}
render() {
return this.state.users ? (
<MUIDataTable
title={"List of Users"}
columns={this.columns}
data={this.state.users}
options={this.options}
/>
) : (
<div>Loading...</div>
);
}
}
export default Users;
当我 console.log("doses", data.doses);
时,我可以查看所有用户的 doses
数据,但无法在 table 中显示。当我尝试这部分代码时,这将导致 mui-datatable:
中出现“无匹配数据”
doc.data().doses.forEach((index) => {
console.log(index.selectedVaccine);
});
如何在 mui-datatable 中显示这些剂量?
更新:错误还是一样,mui-datatable.
里面说“抱歉,没有找到匹配的记录”
columns = ["Name", "Email", "Phone Number", "Address", "Vaccine"];
componentDidMount() {
firestore
.collection("users")
.get()
.then((snapshot) => {
const users = [];
snapshot.forEach((doc) => {
const data = doc.data();
console.log("doses", data.doses);
users.push({
...((data.firstName && data.lastName) || data.middleName == " "
? {
Name:
data.firstName +
" " +
data.middleName +
"." +
data.lastName,
}
: {}),
Email: data.email,
"Phone Number": data.phoneNumber,
Address: data.address,
Vaccine: data.doses.selectedVaccine,
});
});
this.setState({ users: users });
})
.catch((error) => console.log(error));
}
这是错误:
您可以将列添加到 columns
数组中的剂量,您可以将剂量数据添加到 users
数组中。
查看下面的代码示例:
columns = [
"Name",
"Address",
"Dose 1",
"Dose 2",
"First Dose",
"First Vaccinator",
"Dose ID"
];
users.push({
...((data.firstName && data.lastName) || data.middleName == " " ? {
Name: data.firstName +
" " +
data.middleName +
"." +
data.lastName,
} : {}),
"Address": data.address,
"Dose 1": data.doses.dose1,
"Dose 2": data.doses.dose2,
"First Dose": data.doses.firstDose,
"First Vaccinator": data.doses.firstVaccinator,
"Dose ID": data.doses.id
});
此外,您似乎收到“无匹配数据”错误,因为您的 columns
数组中有“疫苗”,但 users
数组中没有并且您的 users
数组中有“电子邮件”,但 columns
数组中没有。
我有来自 firestore 的这些 doses
对象。
我已经可以显示除对象之外的所有数据doses
class Users extends Component {
constructor() {
super();
this.state = { users: [] };
}
columns = [
"Name",
"Address",
"Vaccine",
];
componentDidMount() {
firestore
.collection("users")
.get()
.then((snapshot) => {
const users = [];
snapshot.forEach((doc) => {
const data = doc.data();
console.log("doses", data.doses);
doc.data().doses.forEach((index) => {
console.log(index.selectedVaccine);
});
users.push({
...((data.firstName && data.lastName) || data.middleName == " "
? {
Name:
data.firstName +
" " +
data.middleName +
"." +
data.lastName,
}
: {}),
Email: data.email,
Address: data.address,
});
});
this.setState({ users: users });
// console.log(snapshot)
})
.catch((error) => console.log(error));
}
render() {
return this.state.users ? (
<MUIDataTable
title={"List of Users"}
columns={this.columns}
data={this.state.users}
options={this.options}
/>
) : (
<div>Loading...</div>
);
}
}
export default Users;
当我 console.log("doses", data.doses);
时,我可以查看所有用户的 doses
数据,但无法在 table 中显示。当我尝试这部分代码时,这将导致 mui-datatable:
doc.data().doses.forEach((index) => {
console.log(index.selectedVaccine);
});
如何在 mui-datatable 中显示这些剂量?
更新:错误还是一样,mui-datatable.
里面说“抱歉,没有找到匹配的记录”columns = ["Name", "Email", "Phone Number", "Address", "Vaccine"];
componentDidMount() {
firestore
.collection("users")
.get()
.then((snapshot) => {
const users = [];
snapshot.forEach((doc) => {
const data = doc.data();
console.log("doses", data.doses);
users.push({
...((data.firstName && data.lastName) || data.middleName == " "
? {
Name:
data.firstName +
" " +
data.middleName +
"." +
data.lastName,
}
: {}),
Email: data.email,
"Phone Number": data.phoneNumber,
Address: data.address,
Vaccine: data.doses.selectedVaccine,
});
});
this.setState({ users: users });
})
.catch((error) => console.log(error));
}
这是错误:
您可以将列添加到 columns
数组中的剂量,您可以将剂量数据添加到 users
数组中。
查看下面的代码示例:
columns = [
"Name",
"Address",
"Dose 1",
"Dose 2",
"First Dose",
"First Vaccinator",
"Dose ID"
];
users.push({
...((data.firstName && data.lastName) || data.middleName == " " ? {
Name: data.firstName +
" " +
data.middleName +
"." +
data.lastName,
} : {}),
"Address": data.address,
"Dose 1": data.doses.dose1,
"Dose 2": data.doses.dose2,
"First Dose": data.doses.firstDose,
"First Vaccinator": data.doses.firstVaccinator,
"Dose ID": data.doses.id
});
此外,您似乎收到“无匹配数据”错误,因为您的 columns
数组中有“疫苗”,但 users
数组中没有并且您的 users
数组中有“电子邮件”,但 columns
数组中没有。