React Native gived chat仅在Android上的模拟器和设备上崩溃,在iOS中运行良好

4bbkushb  于 2023-01-24  发布在  Android
关注(0)|答案(1)|浏览(156)

我试着让Gifted Chat在Android上运行,但是我试过的所有方法都不起作用。The documentation is here.。它说在文档的最后有一些与Android相关的问题,但它们都是建议,而不是要求。(无论如何,我都试过了)。
我的AndroidManifest包含以下内容:

<activity
  android:name=".MainActivity"
  android:label="@string/app_name"
  android:windowSoftInputMode="adjustResize"
  android:configChanges="keyboard|keyboardHidden|orientation|screenSize">

我已经升级到最新版本,我正在使用下面的代码示例,他们提供了尝试隔离可能出错的地方(不是我自己的代码,可能有额外的依赖项/不相关的错误)

import React, { useState, useCallback, useEffect } from 'react'
import { GiftedChat } from 'react-native-gifted-chat'

export function Example() {
  const [messages, setMessages] = useState([]);

  useEffect(() => {
    setMessages([
      {
        _id: 1,
        text: 'Hello developer',
        createdAt: new Date(),
        user: {
          _id: 2,
          name: 'React Native',
          avatar: 'https://placeimg.com/140/140/any',
        },
      },
    ])
  }, [])

  const onSend = useCallback((messages = []) => {
    setMessages(previousMessages => GiftedChat.append(previousMessages, messages))
  }, [])

  return (
    <GiftedChat
      messages={messages}
      onSend={messages => onSend(messages)}
      user={{
        _id: 1,
      }}
    />
  )
}

我没有看到任何错误消息,应用程序只是崩溃,每次我导航到屏幕与Gifted聊天.正如在问题标题中所说,它只发生在Android(模拟器和设备),它在iOS上工作得非常好.
想知道其他人是否遇到过同样的问题,并有一个快速修复。
谢谢。

nbnkbykc

nbnkbykc1#

解决方案可能是你没有在代码中包含renderAvatar。查看GitHub资源库,我发现一个问题,如果没有提供,GiftedChat在android上就不能工作。下面是一个例子来说明我的意思:

<GiftedChat
  messages={messages}
  onSend={(messages) => onSend(messages)}
  user={{
      _id: 1,
  }}

  renderAvatar={renderAvatar} (if I remove this line it will crash after 2,3 seconds)
/>
``

相关问题