【发布时间】:2020-02-21 22:57:55
【问题描述】:
我是钩子新手,我的印象是useEffect 在页面加载时只运行了一次。我将兴趣状态变量设置为返回的 Firebase 响应,但它遇到了无限循环。为什么会发生这种情况?据我了解,firebase .once 方法应该只拉回一次数据。
const ProfileCardScreen = ({navigation}) => {
const user = navigation.getParam('user');
const [interests, setInterests] = useState([]);
const getUserProfileData = () => {
var userId = user.uid;
firebase.database().ref('/Users/' + userId).once('value').then(function(snapshot) {
var interests = (snapshot.val() && snapshot.val().interests);
Object.keys(interests).map(function(key) {
setInterests(interests);
});
});
};
useEffect(() => {
getUserProfileData();
});
【问题讨论】:
标签: firebase react-native infinite-loop react-state-management use-effect