我仍然不确定如何使它正常工作。 我想在博览会上写一个小型的聊天应用程序。 现在,我使用的是一个按钮,当单击该按钮时,应将一条消息添加到有才华的聊天中。 我有两个未连接的组件。一种叫做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,但是我不确定这是否行得通。
答案 0 :(得分:0)
我最终只是使用redux而不是状态。 使用GiftedChat.append,您需要使用价差运算符,但随后它可以工作。 我仍然需要解决的一个问题是,每条消息的ID都相同。