Sto tentando di aggiornare il titolo del documento in un'app React. Ho dei bisogni molto semplici per questo. Il titolo è essenzialmente utilizzato per mettere il componente Total
sul display anche quando ci si trova in una scheda diversa.Modifica del titolo del documento in React?
Questo è stato il mio primo istinto:
const React = require('react');
export default class Total extends React.Component {
shouldComponentUpdate(nextProps) {
//otherstuff
document.title = this.props.total.toString();
console.log("Document title: ", document.title);
return true;
}
render() {
document.title = this.props.total;
return (
<div className="text-center">
<h1>{this.props.total}</h1>
</div>
);
}
}
ho pensato che questo sarebbe solo aggiornare la document.title
ogni volta che questo componente è stato reso, ma non sembra di fare nulla .
Non so cosa mi manca qui. Probabilmente qualcosa ha a che fare con come React esegue questa funzione, forse da qualche parte che la variabile document
non è disponibile?
EDIT:
sto iniziando una taglia per questa domanda, in quanto non ho ancora trovato alcuna soluzione. Ho aggiornato il mio codice a una versione più recente.
Uno sviluppo strano è che il console.log
fa stampare il titolo che sto cercando. Ma per qualche motivo, il titolo attuale nella scheda non viene aggiornato. Questo problema è lo stesso su Chrome, Safari e Firefox.
Stai facendo rendering universale? Qualche errore nella console? –
Non appare nulla nella console. E onestamente, non so cosa intendi con "resa universale". Sto eseguendo il rendering esclusivamente in-browser, usando 'ReactDOM.render'. – fnsjdnfksjdb
Forse una domanda stupida, ma poi la tua situazione sembra sconcertante ... Per caso, la tua pagina ha dei frame? Fai un'altra cosa, nel tuo codice componente, registra il risultato di '(window == top)' per favore. – hazardous