6

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実行すると、期待どおりの適切な情報が得られます。

しかし、Msgscreen でそれをコンソールすると、既に上で説明した、作成された最初の 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

      })
    },
    }) 
4

2 に答える 2