2014-10-13 5 views
48

Sto eseguendo il debug di un'applicazione che utilizza React.js, l'elenco delle estensioni di Chrome mostra chiaramente che gli strumenti di sviluppo React sono installati e quando accedo al sito React allo http://facebook.github.io/react/ posso vedere chiaramente una scheda "Reagisci" nella finestra degli strumenti dello sviluppatore. Eppure, quando sto debug mia domanda vedo questo nella console:react dev tools non caricando nel browser Chrome

Download the React DevTools for a better development experience: http://fb.me/react-devtools React.js:87

qualcuno può dirmi come ottenere in modo da utilizzare gli strumenti di sviluppo Reagire?

grazie!

risposta

22

Non è più necessario fare nulla.


Per le versioni precedenti reagiscono le versioni, il requisito principale è che window.React è impostato. Se stai usando un sistema di moduli:

if (typeof window !== 'undefined') { 
    window.React = React; 
} 

Di solito questo dovrebbe essere fatto nel tuo file sorgente principale.

+0

grazie! Questo ha fatto apparire la scheda React. Ho abbellito un po '(sto usando CoffeeScript): se typeof finestra isnt "indefinito" window.React = Reagire window.onload = -> React.renderComponent App (null), document.getElementById ("contenitore ") return –

+0

Che cosa fa esattamente questa affermazione? La mia interpretazione è: 'typeof window! ==" undefined "&& (window.React = React)' riassume in (assumendo che React sia caricato): 'typeof true && true' che è' typeof true'. Che è 'booleano'. http://www.w3schools.com/js/js_datatypes.asp Quindi non sarebbe lo stesso di mettere il testo: 'boolean' nella parte superiore del mio file sorgente principale? –

+1

È usato solo come una versione breve di un'istruzione if. Ogni affermazione nel tuo commento non è corretta. Potrebbe essere scritto verosimilmente come 'if ((typeof window)! ==" undefined ") window.React = React;'. 'typeof' ha una precedenza più alta di'! == ', c'è un assegnamento dopo il &&, e' boolean' farebbe riferimento a una variabile chiamata 'boolean', che causerebbe un ReferenceError. – FakeRainBrigand

3

Questo messaggio viene sempre visualizzato, anche se gli strumenti di React dev sono installati e funzionano nella pagina corrente. Questo verrà risolto in 0.12 (ed è già stato risolto in master). Vedi https://github.com/facebook/react/pull/953.

+1

ok .. la scheda React non appare quando eseguo il debug dell'applicazione, quindi sembra che debba modificare la mia applicazione in qualche modo per ottenere gli strumenti per riconoscere che la reazione è in uso. –

+0

Puoi segnalare se riesci? Potrei fare una domanda a parte per questo, in realtà. Ci sono un certo numero di discussioni aperte senza gioia: https://github.com/facebook/react-devtools/issues/91 https://github.com/atom/electron/issues/915 – GreenAsJade

105

Se nel browser è stato aperto un file html locale (file: // ...), è necessario prima aprire le estensioni di Chrome e deselezionare "Consenti l'accesso agli URL di file".

+0

I am on linux mint 64 bit , ho seguito le istruzioni e il mio permesso di accedere agli URL dei file è stato spuntato, l'ho acceso e poi è apparso il mio tab React. Segnando questo per me corretto poichè mi ha indirizzato nella giusta direzione, ho fatto il contrario e ha funzionato per me. –

+2

Funziona con l'ultima versione di ReactJs 0.13.3. Quindi, dopo aver spuntato l'opzione "Permetti l'accesso ai file URL". È inoltre necessario chiudere la scheda e riaprire nuovamente la scheda (o riavviare chrome se si desidera interrompere nuovamente la riapertura di tutte le schede correnti). – exodream

+0

Questo corregge l'errore, ma non mostra effettivamente la scheda Reagire; che richiede un server web: https://github.com/facebook/react-devtools/issues/172 – Sawtaytoes

2

Gli strumenti di reazione non funzionano anche se sei in modalità di navigazione in incognito. Potrebbe aiutare qualcuno.

+1

Funzionano ma devi permetterle di girare in incognito sotto chrome: // extensions /, come ogni altra estensione – ivarni