如何在react-native中实现多组聊天?

时间:2018-03-25 09:11:04

标签: react-native react-navigation

我是ReactNative的初学者。

我看到了Chat in React Native,我也有类似的问题。

我希望每个群组聊天都有多个群聊,其中包含完全不同的消息历史记录。

标准方式,就像我得到的那样,是在Apps渲染功能中重复使用相同的聊天组件(例如GiftedChat),并将状态与当前群组聊天的消息一起传递。

但这总是需要花费大量时间来重新渲染 - 我如何“存储”不同群聊的视图以绕过重新渲染?

有没有办法动态添加视图组件并只显示/隐藏它们?

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案。

我尝试使用ReactNative中的不同导航器并注意到,每次导航时都会实例化StackNavigator的路径项。

TabNavigators重复使用相同的实例。

获得所需功能的两个步骤:

1)禁用TabBar的可见性:

const TabNav = TabNavigator({
    Home: { screen: HomePage},    
    Chat1: { screen: ChatScreen}  ,
    Chat2: { screen: ChatScreen}  ,
     // ...
    },
    {
        navigationOptions: ({ navigation }) => ({
            tabBarVisible: false,
        }),});

2)手动导航 - 例如通过按钮:

<Button title="Chat1" onPress={() => this.props.navigation.navigate("Chat1") }/>

看一个简单的例子:

https://github.com/chrisdie/AwesomeNavigation/blob/master/src/tabbar2/App.js