首页 > 解决方案 > 为什么 axios fetch 在移动设备上不起作用?

问题描述

我有以下设置,它可以在我的 PC 上运行,但即使有数据要获取,也不能在移动设备上运行。

useEffect(() => {
    const {username, room} = queryString.parse(location.search);
    setRoom(room);

    if (messages.length > 3) {
        let lastMessage = messages.pop();
        setMessss([lastMessage]);
        const fetchHistory = async () => {
            try {
                const result = await axios.get(`https://example.com/messages/${room}`,);
                setMessss(result.data.messagesFromAPI);
            } catch (error) {
                console.log(error);
            }
        };
        fetchHistory();
    }
}, [messages]);

我还有另一个 useEffect 钩子,它在 componentDidMount 上的 PC 上工作,但如果我多次重新加载页面就不起作用,但我希望它在每次重新加载页面时都能工作,但它不获取......这可能是因为我使用Mongodb Atlas上的免费订阅(M0)?尽管从指标来看,我的数据库还没有耗尽或达到容量。

useEffect(() => {

    const {username, room} = queryString.parse(location.search);
    // setRoom(room);

    axios.get(`https://example.com/messages/${room}`)
    .then(response => {
        const history = response.data.messagesFromAPI;
        setMessss(history);
    })
    .catch(error => {
        console.log(error.response);
    });
},[]);

标签: node.jsreactjsaxiosmongodb-atlas

解决方案


推荐阅读