GithubHelp home page GithubHelp logo

Comments (1)

Patrick-Ullrich avatar Patrick-Ullrich commented on July 29, 2024

I am going to comment on here, because I think my issue might be related to this.

I am trying to call a function when someone left a session. e.g.

  1. otSession.current.state.streams.length == 1
  2. User leaves
  3. otSession.current.state.streams.length == 0.

However, when I pass the otSession (ref to OTSession) to my component, then in the componentDidUpdate hook I see that prevProps.otSession.current.state.streams.length will always == this.props,otSession.current.state.streams.length.

I am assuming the issue might be in the actual library, where streams might be mutated with something like .push() instead of recreated with concat or the spread operator.

EDIT: Solved this need by managing the stream state myself in the component.

componentDidUpdate(prevProps, prevState) {

     if (prevProps && prevProps.otSession && prevProps.otSession.current && prevProps.otSession.current.state && prevProps.otSession.current.state.streams) {
         let newSubscriberCount = prevProps.otSession.current.state.streams.length;
         if (this.state.subscriberCount != newSubscriberCount) {
             if (this.state.subscriberCount > newSubscriberCount) {
                 console.log('person left')
             }
             this.setState({subscriberCount: newSubscriberCount })
         }
     }
     
 }

from opentok-react.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.