在useState反应后立即获取价值

时间:2020-03-05 12:42:56

标签: javascript reactjs

我在我的功能组件中使用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'

2 个答案:

答案 0 :(得分:1)

function(){ const newRoom = "test 2"; setMyRoom(newRoom) console.log(newRoom) } 的目的不是更改局部变量setMyRoommyRoom可能是myRoom,因此将无法更改,即使它是const也不是设置状态要尝试的。

相反,调用setState的目的是告诉react您希望组件重新呈现。当组件重新渲染时,它将获得具有新值的新局部变量。

如何在重新渲染之前得到它?

很少需要这样做,但是如果这样做,也许可以将值保存到变量中并使用该变量;

let

使用setState和使用普通JS有什么区别

setState是react提供的api,可以告诉您要重新渲染组件。如果不使用它,就不会告诉您要重新渲染。

答案 1 :(得分:0)

curl -XPOST -H 'Content-Type: application/json' localhost:9200/users_v2/_delete_by_query -d '{ "query": { "match": { "description_field": "bad user" } } }' 是一个异步函数,调用后可以立即获得setMyRoom

您可以解决您的问题:

myRoom