我正在使用 RN v0.46.4、react-navigation 和 sendbird。
我正在开发一个聊天应用程序。
我想要做的是使用两个参数item
(包含用户信息)和createdChannel
.
它们被传递但只有一次,即每次我导航到Msg
不同用户的屏幕时,我都会收到与我首先按下的相同的值。
聊天画面
_chat(item){
// console.log(item);
const { navigate } = this.props.navigation
var userIds = [item.id,1];
sb = new SendBird({appId: APP_ID});
sb.connect(1, function(user, error) {
//console.log(user);
sb.GroupChannel.createChannelWithUserIds(userIds, true, item.firstname, function(createdChannel, error) {
if (error) {
console.error(error);
return;
}
//console.log(createdChannel);
navigate('Msg', { item, createdChannel })
});
此外,当我在 中进行控制台createdChannel
时_chat function
,它会按预期提供正确的信息。
但是当我在Msg
screen 中对其进行控制台时,我只收到了第一个 createdChannel 创建的,上面已经说过。
消息屏幕
super(props);
console.log(props.navigation.state.routes[1].params.createdChannel);
我的路由器结构:
const CustomTabRouter = TabRouter(
{
Chat: {
screen: ChatStack,
path: ""
}
}
聊天堆栈
const ChatStack= StackNavigator({
Chat:{screen: Chats,
navigationOptions: {
header: null,
}},
Msg: {
screen: Msg,
navigationOptions: ({ navigation}) => ({
title: `${navigation.state.params.item.firstname} ${navigation.state.params.item.lastname}`,
tabBarVisible: false
})
},
})