开发者问题收集

如何避免获取数据时为 null 或 undefined?

2022-10-27
709

我从 catch(error) console.log 中收到错误,内容是 LOG [TypeError: Array.from 需要类似数组的对象 - 非 null 或 undefined]

现在我想在 我的函数中避免出现 null 或 undefined ,然后再在 useState 中更新它。 那么我怎样才能避免我的代码中出现 null 或 undefined?

我应该在哪里使用该函数,因为我正在从 API 中获取数据。任何人都可以帮助使用过滤器或任何函数来避免我的代码中出现 null 或 undefined。

感谢您的提前尝试!

const [item, setItem] = useState();
 
async function fD() {

        try {
            const rA = await Promise.all(devices?.map((id) => {
                const dT = fetch("https://jsonplaceholder.typicode.com/posts/1")
                    .then((response) => response.json())
                    .then((a) => {
                        return a;
                    })
  
                    .catch((error) => console.error(error));
                return dT;
            }));
            
            setItem(rA);
        }
        catch (error) {
            console.log(error);
        }
    }
2个回答

我发现 https://jsonplaceholder.typicode.com/posts/11111 响应 {

您应该使用 rA.filter(s=>s?.id ?? false)

const [item, setItem] = useState();

async function fD() {
    const rA = await Promise.all(
        (devices ?? []).map((id) => {
            const dT = fetch('https://jsonplaceholder.typicode.com/posts/1')
                .then((response) => response.json())
                .catch((error) => console.error(error));
            return dT;
        }),
    );
    setItem(rA.filter(s=>s?.id ?? false));
}
lisonge
2022-10-27

在这种情况下,null 或 undefined 来自设备,因此需要确保设备值不包含任何 null 或 undefine,这足以解决顶部提到的错误。 我已经解决了这些问题并弄清楚了,只是认为我应该在这里分享这些知识。

Sabbir Ahhmed
2022-11-04