Я правильно получаю строковое значение, но оно, похоже, работает неправильно, потому что оно слишком длинное

#javascript #string #react-native #ytdl #tinyurl

Вопрос:

Когда я вставляю адрес, полученный из youtube-dl, в область источника в React-native-Video с помощью componentDidMount, возникает ошибка.

Но если я вручную помещу адрес, полученный из youtube-dl, в переменную и вставлю его в источник, он снова заработает.

 componentDidMount(){
          
            
            
            const {route, navigation} = this.props; 
            const {gameVid} = route.params;
            
            
            if (gameVid != null) {
                console.log('Didmount')
                return new Promise((resolve, reject) => {
                    const rendertest = async (gameVid) => {
    
            
                        const format = await ytdl(gameVid, { quality: 'lowestvideo'},(err, info) => {
                            if(err){
                                reject(err);
                                console.log("promise error")
                                return;
                            }
                        });
                        let test = JSON.stringify(format[0].url);
                            
                        return test
                        
                    }
    
                    
                
                 
                        rendertest(gameVid).then(finalValue => {
                            console.log(typeof(finalValue) ": " finalValue)
                            //this.state.testvalue = finalValue;
                            this.setState({
                                testvalue: finalValue,
                                
                                done: true
                            });
                           
                            
                        })
    
                    //resolve(this.state.testvalue)
                    
                })
                

            }else{
                console.log("notmount")
            }
            

            

                
        }
 

Значение, полученное с youtube-dl

https://r8—sn-3u-bh2z7.googlevideo.com/videoplayback?expire=1625856923amp;ei=O0foYKrcF5CygQPN85ywAgamp;ip=121.173.203.153amp;id=o-AOLRbY2AHJsz2DC1wsr_lNkKzZcu9H0zK2MWtzpFlcZyamp;itag=160amp;aitags=133,134,135,136,160,242,243,244,247,278,298,299,302,303,308,315amp;source=youtubeamp;requiressl=yesamp;mh=gkamp;mm=31,26amp;mn=sn-3u-bh2z7,sn-npoe7n7yamp;ms=au,onramp;mv=mamp;mvi=8amp;pl=19amp;initcwndbps=788750amp;vprv=1amp;mime=video/mp4amp;ns=jfZ8U00MujnTak6BPZ_zlrwGamp;gir=yesamp;clen=1888996amp;dur=142.133amp;lmt=1618484719885227amp;mt=1625834690amp;fvip=6amp;keepalive=yesamp;fexp=24001373,24007246amp;c=WEBamp;txp=5311224amp;n=4ulp20myHUPq6KhHdKamp;sparams=expire,ei,ip,id,aitags,source,requiressl,vprv,mime,ns,gir,clen,dur,lmtamp;sig=AOq0QJ8wRAIgTa5l0xWa2Qsz4xb26XBTGskRvwNwIukJLVO8mk1k1J4CIB6BOZqksCXIkip-GZg37MbYxrzdXOCKVK0-fXdJSjZgamp;lsparams=mh,mm,mn,ms,mv,mvi,pl,initcwndbpsamp;lsig=AG3C_xAwRQIhAI-b9_flZCHzRIiufpnLOXjPsbuxeg9J3uUofLrfnR4xAiA6wh-F3tmzpHfY3-vOL2N4XQudfvdILD1qsNRpME7Z_A==amp;ratebypass=yes

Когда я проверяю значение «testvalue» с помощью консоли, я получаю его нормально.

Даже когда я вставляю ссылку в Chrome, она работает нормально, но почему она не работает должным образом из react-native?