gpt4 book ai didi

javascript - 在表格单元格内调用 javascript 函数

转载 作者:行者123 更新时间:2023-12-02 21:12:38 25 4
gpt4 key购买 nike

我一直在尝试调用表格单元格内的函数来动态生成一些数据。但一直出现以下错误。我不确定我是否在表格单元格内正确调用定义的函数和 javascripts 函数。


TypeError: patient.dob.getFullYear is not a function
(anonymous function)
C:/Users/Anand/OneDrive/clinic/client/src/components/ListPt.js:64
61 | <td>{patient.email}</td>
62 | <td>{patient.mobile}</td>
63 | <td>{patient.gender}</td>
> 64 | <td>{calculate_age(new Date(patient.dob.getFullYear(), patient.dob.getMonth(), patient.dob.getDate()))}</td>
| ^ 65 | <td>{patient.address}</td>
66 | {/* <td><EditTodo todo={todo}/></td> */}
67 | <td><button className="btn btn-danger" >Add Treatment</button></td>

完整代码如下:

import React, { Fragment, useEffect, useState } from "react";


const Listpt = () => {
const [patients, setPatients] = useState([]);


const getPts = async() =>{
try {

const response = await fetch("http://localhost:5000/patients")
const jsonData = await response.json();


setPatients(jsonData);

} catch (err) {
console.error(err.message);

}
}
useEffect(() => {
getPts();
},[]);


console.log(patients);

//Age calculator
function calculate_age(dob) {
var diff_ms = Date.now() - dob.getTime();
var age_dt = new Date(diff_ms);

return Math.abs(age_dt.getUTCFullYear() - 1970);
}

return <Fragment>
{" "}
<table class="table mt-5 text-center">
<thead>
<tr>
<th>OPD No</th>
<th>Name</th>
<th>Email</th>
<th>Mobile</th>
<th>Gender</th>
<th>Dob</th>
<th>Address</th>
</tr>
</thead>
<tbody>

{patients.map(patient =>(
<tr key ={patient.patient_id}>
<td>{patient.patient_id}</td>
<td>{patient.name}</td>
<td>{patient.email}</td>
<td>{patient.mobile}</td>
<td>{patient.gender}</td>
<td>{calculate_age(new Date(patient.dob.getFullYear(), patient.dob.getMonth(), patient.dob.getDate()))}</td>
<td>{patient.address}</td>

<td><button className="btn btn-danger" >Add Treatment</button></td>
</tr>
))}
</tbody>
</table>
</Fragment>

};

export default Listpt;

谁能帮我理解第 64 行哪里出了问题。

<td>{calculate_age(new Date(patient.dob.getFullYear(), patient.dob.getMonth(), patient.dob.getDate()))}</td>

最佳答案

getFullYear 是在 Date 对象上找到的方法。

patent.dob 不能是 Date 对象,因为 JSON 没有这样的东西。

可能是一个字符串。您需要识别该字符串的格式并将其转换为 Date 对象。

关于javascript - 在表格单元格内调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61047202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com