[英]cannot set state inside useEffect
I'd like to set a value to nickid
state using react hooks.我想使用反应钩子为
nickid
state 设置一个值。
UID from database has a value, then I set the state and console.log after it, it shows null.数据库中的UID有一个值,然后我设置了state和console.log,它显示了null。
any ideas why?任何想法为什么?
My code:我的代码:
const [nickid, setNickid] = useState(null); //uid
useEffect(() => {
firebase.database().ref('/users/').orderByChild('user').equalTo(props.match.params.user).once('value').then(snapshot => {
if (snapshot.exists()){
var uid = Object.keys(snapshot.val())[0]; //uid has a value
setNickid({ nickid: uid });
console.log(nickid); // here is null
First thing setState/setNickid
is async function so you will not get direct that value right after it首先
setState/setNickid
是异步的 function 所以你不会在它之后直接得到那个值
Second , change this第二,改变这个
setNickid({ nickid: uid });
To至
setNickid(uid);
setState is async function (does not execute immediately) if you want to console log nickid when it is changed setState 是异步的 function (不立即执行)如果你想在更改时控制台记录 nickid
useEffect(()=>{
console.log(nickid)
},[nickid])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.