TypeError: .some Is not A Function React JS Error

TypeError: .some Is not A Function React JS Error

const [userFavorites, setUserFavorites]= useState([]); 这是我的代码的一部分,它将 userFavorites 的状态设置为一个数组,我在其他地方有一个函数试图做 userFavorites.some 并且我保留 TypeError: userFavorites.some is not a function .感谢您的帮助!

如果您可以 post 整个代码片段,那么这将有助于回答。虽然你可能正在做这样的事情。

最初,它被声明为一个空数组[],但有可能在您的代码中某处设置了这样的状态。

  setUserFavorites(someDataFromAPICallORPostOperation).

在这里,您的 someDataFromAPICallORPostOperation 可能未定义。

您可以通过两种方式解决此问题。

1.设置状态时默认为空数组。

  setUserFavorites(someDataFromAPICallORPostOperation ?? []).

2。在调用 .some 函数之前检查 undefined

userFavorites?.some(function) // Using optional chaining

userFavorites && userFavorites.some(function)

编辑 - 基于评论中提到的代码 link.

数组 push 操作不是 return 更新的数组,而是 return 更新的数组中的元素数。

这可以解决为

    function addFavoritesHandler(favoriteMeetup) {
        setUserFavorites(prevUserFavorites => {
            return [...prevUserFavorites, favoriteMeetup];
        });
    }

说明,您之前做过类似的事情。

    function addFavoritesHandler(favoriteMeetup) {
        setUserFavorites(prevUserFavorites => {
            return prevUserFavorites.push(favoriteMeetup);
        });
    }

此处您将状态设置为数字而不是数组,因为 push 将 return 该数组中的元素数。因此,在执行 userFavorites.some 时它会抛出错误,因为您将 userFavorites 设置为数字而不是数组。