This question already has answers here:
useState set method not reflecting change immediately
(2个答案)
2个月前关闭。
我在反应中的功能组件中使用useState!
只是对某些事情感到困惑
例如,当我使用此函数setMyRoom在方法中设置我的房间时,它不会更改值,直到第二次重新启用
第二个问题,使用setState和使用普通JS有什么区别?
myRoom ='test2'
使用setState和使用普通JS有什么区别
setState是react提供的api,可以告诉您要重新渲染组件。如果您不使用它,就不会告诉您要重新渲染。
(2个答案)
2个月前关闭。
我在反应中的功能组件中使用useState!
只是对某些事情感到困惑
[myRoom,setMyRoom] = useState('test1');
例如,当我使用此函数setMyRoom在方法中设置我的房间时,它不会更改值,直到第二次重新启用
function(){
setMyRoom("test 2")
console.log(myRoom)
// here i get test1 from the first line but not (test2) !!
//why don't i get it immediately?
//how can i get it before the re-render?
}
第二个问题,使用setState和使用普通JS有什么区别?
myRoom ='test2'
最佳答案
setMyRoom
的目的不是更改局部变量myRoom
。 myRoom
可能是const
,所以不可能更改,即使它是let
也不是设置状态要尝试的。
相反,调用setState的目的是告诉react您希望组件重新呈现。当组件重新渲染时,它将获得具有新值的新局部变量。
如何在重新渲染之前得到它?
很少需要这样做,但是如果这样做,则可以将值保存到变量中并使用该变量。
const newRoom = "test 2"
setMyRoom(newRoom);
console.log(newRoom);
使用setState和使用普通JS有什么区别
setState是react提供的api,可以告诉您要重新渲染组件。如果您不使用它,就不会告诉您要重新渲染。
关于javascript - 在useState react 后立即获得值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60545690/
10-11 05:30