RN v0.46.4 、react-navigation、sendbird を使用しています。
チャットアプリを開発しています。
私がやろうとしているのは、2 つのパラメーター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
})
},
})