为什么在将简单字符串传递给 state 时得到 'implied eval. Consider passing a function instead of a string'?
Why do I get 'implied eval. Consider passing a function instead of a string' when passing a simple string to state?
我只是在制作一个非常简单的计算器并设置 return 文本,以便它在屏幕上为用户打印。
这真的很简单,我已经多次将字符串传递给状态堆。
为什么会出现此错误?
这是相关的代码块:(请参阅与错误消息对齐的行号注释
crcl = (((140 - age) * idbw) / (0.814 * creatinine)) * cockcroftFactor
crclRounded = Math.round(crcl)
setCreatinineClearance(crclRounded);
if (crcl < 20 && weight >= 40 && weight <= 110) {
setInterval("48-hourly, take trough level before the first dose");
} else if (crcl >= 20 && crcl <= 60 && weight >= 40 && weight <= 110) {
setInterval("24-hourly, take trough level before the third dose"); //this is line 131
} else if (crcl >= 60 && weight >= 40 && weight <= 110) {
setInterval("12-hourly, take trough level before the fourth dose"); //this is line 133
}
if (weight < 40) { //this is line 135
alert("Please contact infectious diseases for dosing in underweight patients");
closeDialog();
return;
} else if ((weight >= 40) && (weight <= 49)) {
setDose("750")
} else if ((weight >= 50) && (weight <= 64)) {
setDose("1000")
} etc.....
错误信息如下:
编辑:是的,根据@Etheryte 的评论,我意识到您打算 setInterval
成为 setState
函数名称。我完全错过了。由于 setInterval
是一个已经存在的函数的名称,我猜你只需要为你的 setState
函数使用不同的名称。
您可以将函数而不是字符串传递给 setInterval
,以使浏览器(或 nodejs)以您作为第二个参数传递的给定时间间隔执行传递的函数。你两个都没有通过。
我假设它说“隐含评估”的原因是你传递了一个字符串,并认为你希望它将字符串解析为 javascript 并将其评估为 js,这是不安全的,它拒绝这样做。
下面是使用setInterval
的例子。
setInterval(() => {
console.log("Hello!")
}, 1000)
我只是在制作一个非常简单的计算器并设置 return 文本,以便它在屏幕上为用户打印。 这真的很简单,我已经多次将字符串传递给状态堆。 为什么会出现此错误?
这是相关的代码块:(请参阅与错误消息对齐的行号注释
crcl = (((140 - age) * idbw) / (0.814 * creatinine)) * cockcroftFactor
crclRounded = Math.round(crcl)
setCreatinineClearance(crclRounded);
if (crcl < 20 && weight >= 40 && weight <= 110) {
setInterval("48-hourly, take trough level before the first dose");
} else if (crcl >= 20 && crcl <= 60 && weight >= 40 && weight <= 110) {
setInterval("24-hourly, take trough level before the third dose"); //this is line 131
} else if (crcl >= 60 && weight >= 40 && weight <= 110) {
setInterval("12-hourly, take trough level before the fourth dose"); //this is line 133
}
if (weight < 40) { //this is line 135
alert("Please contact infectious diseases for dosing in underweight patients");
closeDialog();
return;
} else if ((weight >= 40) && (weight <= 49)) {
setDose("750")
} else if ((weight >= 50) && (weight <= 64)) {
setDose("1000")
} etc.....
错误信息如下:
编辑:是的,根据@Etheryte 的评论,我意识到您打算 setInterval
成为 setState
函数名称。我完全错过了。由于 setInterval
是一个已经存在的函数的名称,我猜你只需要为你的 setState
函数使用不同的名称。
您可以将函数而不是字符串传递给 setInterval
,以使浏览器(或 nodejs)以您作为第二个参数传递的给定时间间隔执行传递的函数。你两个都没有通过。
我假设它说“隐含评估”的原因是你传递了一个字符串,并认为你希望它将字符串解析为 javascript 并将其评估为 js,这是不安全的,它拒绝这样做。
下面是使用setInterval
的例子。
setInterval(() => {
console.log("Hello!")
}, 1000)