reactjs - 当子组件触发方法时,父组件中的状态不会更新
问题描述
我的反应代码中有一个问题,如果有人可以帮助我,我会很高兴。我有一个发出该方法的子组件,并在我的父组件中使用该方法。同样在父组件中,有一个状态,每当方法发出时,我都想更改状态的值。这是代码:
const [color, setColor] = useState("red");
const selectColor= (colorName) => {
setColor("blue");
console.log("color : ", color);
}
<Child onChangeColor={selectColor} />
这就是问题所在。当我调用该方法时,我将颜色的值更改为“蓝色”,但第一次该值没有改变,但第二次再次调用该函数时,该值更新为“蓝色”。我哪里做错了?如果有人可以向我解释,我将不胜感激。
最好的。
解决方案
它按预期工作。SetColor 不会立即更新状态,因此 console.log 将记录以前的值。您需要像这样记录它:
useEffect(() => {
console.log(color)
}, [color])
一旦颜色值完成更改,useEffect 将控制台记录颜色值。
推荐阅读
- php - 我想过滤对代码点火器的搜索
- twitter-bootstrap - Modal 中的 Bootstrap-Tab 控件在第一次切换选项卡后消失
- python - Boto3 从 S3 读取文件时抛出 ConnectionReset 和协议错误
- python - tensorflow 训练网络并保存为函数
- javascript - Spring Boot 提供 pdf,但它在浏览器中以空白 pdf 格式打开
- android-studio - GPU驱动问题的解决方案是什么?
- sql - 如何将选择上的最大/最小日期列与上一个日期的数据连接起来
- angular - 错误:期望验证器返回 Promise 或 Observable
- r - 治疗组和对照组之间 OR 语句的 R 代码
- windows - Windows 沙盒不运行 .NET 应用程序