Javascript React native Array.find不是函数

Javascript React native Array.find不是函数,javascript,android,react-native,Javascript,Android,React Native,我是js开发的大三学生,所以这可能是一个愚蠢的问题,请道歉 我在我的应用程序中使用firebase来存储我的字符串,我在加载应用程序时调用它一次,并将其保存在内存中以便更快地访问 然后我使用strings.find在数组中查找特定的字符串。所有的工作都是在iOS上运行的,但在Android上运行时,我总是会遇到这个奇怪的错误 TypeError: Undefined is not a function (evaluting 'this.strings.find... 这是我的数据模式 {'st

我是js开发的大三学生,所以这可能是一个愚蠢的问题,请道歉

我在我的应用程序中使用firebase来存储我的字符串,我在加载应用程序时调用它一次,并将其保存在内存中以便更快地访问

然后我使用strings.find在数组中查找特定的字符串。所有的工作都是在iOS上运行的,但在Android上运行时,我总是会遇到这个奇怪的错误

TypeError: Undefined is not a function (evaluting 'this.strings.find...
这是我的数据模式

{'strings':[{'name':'something','value':'something'}…]

这是我的密码

getString(名称){
返回此.strings.find(x=>x.name==name).value
}

这就是我定义对象的地方

init(onUpdated) {
    Promise.all([stringsDb.once('value'), multiLang.once('value')])
      .then(([stringsSnapshot, multiLangSnapshot]) => {

        this.strings = stringsSnapshot.value
        this.multiLang = multiLangSnapshot.value

        onUpdated(true)
      })
      .catch((err) => {
        console.log(err.stack)
        onUpdated(false)
      });
  }

这可能是因为
This.strings
不是数组。您需要调试它,看看它是否实际是数组,我猜它返回一个对象,如果是这样,那么您需要使用一个减缩器,或者可能是
object.values
或其他东西来转换为数组


p、 s比较字符串时,您应该使用
=
运算符

您在哪里设置
此字符串?@AndrewLi谢谢!我编辑了问题我猜是(因为它是异步的)
this.strings
在承诺被解析之前未定义,并且
this.strings
被分配到。在
之后调用
getName
。设置strings
或者在执行
find
之前检查它是否未定义。我想,所以我将此.strings打印到控制台,并且它已经定义好了(我使用回调仅在字符串已定义后调用find)谢谢!!就是这样。事实证明,firebase for Android返回的对象与iOS返回的对象不同,因此我必须在使用之前将其转换为到达