React代码如下, 前三次每次点击button都会打印不同的结果,苦思不得解,请大佬解惑。。
第一次点击button打印:click 1 2
第二次点击button打印:click 1
第三 ~ 第 N 次点击button打印:click
function A() {
console.log(2)
return null
}
const App: React.FC = () => {
const [flag, setFlag] = useState(false)
console.log(1)
return (
<div>
<button
onClick={() => {
console.log("click")
setFlag(true)
}}
>
click me
</button>
<A />
</div>
)
}
如何解释第二次的打印结果呢???
我原以为第二次点击button,只会打印click,依据是状态的newValue === prevValue,不会触发re-render,但是想不通为什么还打印了“1”。然后奇怪的是,第三次往后,又没有“1”了
先把代码看明白就行了。你的三个打印分别为:
click
(所以永远有效)2
A
组件渲染打印1
目前我怀疑你描述的打印顺序是错误,这个组件加载就会打印1
,然后完成A
加载,打印2
;然后你才能点到button
打印click
,由于点击时修改了state
的值,马上会再次打印1
,A
组件应该不需要重新渲染,所以不会再次打印2
;以后再点按钮因为state
已经是true
,所以不会再有啥反应了,这样就只能看到click
了。
我一直试图理解以下术语:最初赋值的变量和最初未赋值的变量。但我不确定我对这些术语的解释是否正确。底部加粗的文字是我的解读。所以,如果我误解了什么,请随时纠正我。 在阅读了以下有关变量的C#Microsoft文档https://docs.Microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/variab
本文向大家介绍PHP关于htmlspecialchars、strip_tags、addslashes的解释,包括了PHP关于htmlspecialchars、strip_tags、addslashes的解释的使用技巧和注意事项,需要的朋友参考一下 PHP的htmlspecialchars、strip_tags、addslashes是网页程序开发中常见的函数,今天就来详细讲述这些函数的用法: 1.函
问题内容: 是在运行时严格解释Python,还是可以将其用于开发作为后台应用程序运行的程序(例如Java应用程序或C程序)? 问题答案: 这里有多个问题: 不,不解释Python。标准实现编译为字节码,然后在虚拟机中执行。许多现代的JavaScript引擎也可以做到这一点。 不管实现方式(解释器,VM,机器代码)如何,任何您想要的东西都可以在后台运行。如果需要,可以在后台运行Shell脚本。
本文向大家介绍关于Linux下对于makefile的理解,包括了关于Linux下对于makefile的理解的使用技巧和注意事项,需要的朋友参考一下 什么是makefile呢?在Linux下makefile我们可以把理解为工程的编译规则。一个工程中源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,那些文件需要先编译,那些文件需要后编译,那些文件需要重新
问题内容: 为简单起见,请设想这种情况,我们有一台2位计算机,它具有一对称为r1和r2的2位寄存器,并且仅适用于立即寻址。 假设位序列 00 表示 添加 到我们的CPU中。也 01 的装置将数据移动到R 1和 10组 的装置将数据移动到R2。 因此,这台计算机和一个汇编器都有一种汇编语言,其中的示例代码将像 简而言之,当我将此代码汇编成本地语言时,文件将类似于: 上面的12位是以下代码的本机代码:
我不明白,当我为5分配内存时,它会打印出一个示例。我知道可以使用strncpy来完成,但有没有一种方法可以不使用strncpy来完成呢 它适用于strncpy,但有没有办法在没有strncpy的情况下做到这一点? 打印出一个示例 不应该打印OneE吗??有人能解释一下吗?