我想使用React钩子将值设置为nickid
状态。
数据库中的UID有一个值,然后在其后设置状态和console.log,它显示为空。
为什么有什么主意?
我的代码:
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
答案 0 :(得分:1)
首先事物setState/setNickid
是异步函数,因此您将无法直接获得该值
第二,更改此
setNickid({ nickid: uid });
收件人
setNickid(uid);
答案 1 :(得分:1)
setState是异步函数(不会立即执行) 如果您想在更改时记录控制台昵称
useEffect(()=>{
console.log(nickid)
},[nickid])