0

我仍然不确定如何让它工作。我想在博览会上写一个小型聊天应用程序。现在我正在使用一个按钮,当点击它时,应该将一条消息附加到一个有天赋的聊天中。我有两个未连接的组件。一个叫做 button.js,一个叫做 chat.js。它们都显示在 App.js 中。我尝试在 chat.js 中编写一个辅助函数


    updateChatView(){
        //Debug only
        // console.log("TEST");
        this.setState(previousState => ({
              messages: GiftedChat.append(previousState.messages, {
                _id: "MSG ID",
                text: "TEXT YOU WANT TO SHOW",
                createdAt: new Date(),
                user: {
                  _id: "USER_ID",
                  name: "USER NAME",
                  avatar:"USER AVATAR URL",
                },
              }),
            }));

      }

我可以看到控制台输出 TEST,但无法设置状态,因为似乎没有安装组件(chat.js)。我使用此代码来调用该函数。

import ChatView from './chatView';
const cv = new ChatView();

//Render function
  <View style={styles.container}>
        <Button title="Button" onPress={(e) => cv.updateChatView()} />
      </View>

我会认为 chat.js 已安装,因为它显示?我不知道从哪里开始。我很想用 redux 替换 state,但我不确定这是否可行。

4

1 回答 1

0

我最终只使用了 redux 而不是 state。使用 GiftedChat.append 您需要使用扩展运算符,但它可以工作。我仍然需要解决的一个问题是,每条消息的 ID 都保持不变。

于 2019-10-01T09:13:01.207 回答