console.log(handler)
在第一次执行时返回处理程序值,而不是!handler
import React, { useState } from "react";
function Listitem(props) {
const [handler, setHandler] = useState(true);
function changeHandler(event) {
setHandler(prev => !prev);
console.log(handler);
}
return (
<li
onClick={changeHandler}
style={{ textDecroration: !handler ? "line-through" : "none" }}
>
{props.text}
</li>
);
}
export default Listitem;
CSS 属性中有拼写错误。这textDecoration
不是textDecroration
.
这是你另一个console.log
问题的答案。
从文档中:
setState(( 不会立即改变 this.state,但会创建一个 挂起的状态转换。调用此状态后访问此状态 方法可能会返回现有值。没有 保证对 setState 的调用的同步操作,并且调用可能 进行批处理以提高性能。
对于钩子,
钩子不支持第二个回调参数。执行端 效果渲染后,在组件体中声明
useEffect()
.
useEffect(() => {
console.log(number);
}, [number]);