大佬教程收集整理的这篇文章主要介绍了我用 let 声明了我的变量,但它仍然不在全局范围内,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图让一个组件出现在 'uneligible=(age
let uneligible; const handleSaveGeneral = async (E) => { var dateOfBirth = "2007-01-01"; var split_dob = dateOfBirth.split("-"); var month = split_dob[1]; var day = split_dob[2]; var year = split_dob[0]; var dob_asdate = new Date(year,month,day); var today = new Date(); var mili_dif = Math.abs(today.getTime() - dob_asdate.getTime()); var age = mili_dif / (1000 * 3600 * 24 * 365.25); console.log(agE); uneligible = age < 18; };
@H_197_7@<div> {uneligible && ( <Alert variant="filled" severity="error"> This is an error alert — check it out! </Alert> )} </div>
@H_197_7@代码沙盘:https://codesandbox.io/s/serverless-wave-qyuc4?file=/src/App.js:602-767
由于这个问题,我没有使用有状态变量:conditional rendering is not working in my functional component
解决方法
查看 react 文档以了解它的生态系统如何围绕状态旋转。您的代码应该看起来像这样,具有给定的详细信息 - https://codesandbox.io/s/quirky-buck-s2qvo
您可以在发生特定事件时调用相同的函数,而不是使用 useEffect,例如按钮点击时的
click
事件。关于您更新的问题-您一次又一次地设置状态,因为由于设置状态而导致的每个渲染将再次调用状态更新程序函数,并且它会继续......如果您想要一个,这不是您想要的- 根本没有处理程序的时间初始渲染。
但是现在由于您将通过函数处理程序处理警报的可见性,您有责任向该组件添加某种状态,以便在该处理程序中更新可见性状态并显示您的警报。
,
let
允许您声明仅限于使用它的块语句或表达式范围的变量,这与var
关键字不同,它声明一个全局变量或局部变量不考虑块作用域的整个函数。就像
const
一样,let
在全局(在最顶层范围内)声明时不会创建 window 对象的属性。要实现您想要的效果,您可以使用
var
/window.uneligible
而不是let
大佬总结
以上是大佬教程为你收集整理的我用 let 声明了我的变量,但它仍然不在全局范围内全部内容,希望文章能够帮你解决我用 let 声明了我的变量,但它仍然不在全局范围内所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。