2016-06-09 14 views

risposta

5

Ho utilizzato react-document-meta in un progetto precedente.

Basta definire i valori meta

const meta = { 
    title: 'Some Meta Title', 
    description: 'I am a description, and I can create multiple tags', 
    canonical: 'http://example.com/path/to/page', 
    meta: { 
     charset: 'utf-8', 
     name: { 
      keywords: 'react,meta,document,html,tags' 
     } 
    } 

e mettere un

<DocumentMeta {...meta} /> 

nel ritorno

+0

i tag cambieranno con le transizioni di pagina o solo per la pagina di destinazione? –

+0

Come è strutturata la tua applicazione? Avete più componenti o solo uno che viene modificato durante la transizione? – KRONWALLED

+0

2 componenti cambieranno, il resto rimane lo stesso. –

5

È possibile utilizzare react-meta-tags. Ti consente di scrivere titolo e altri meta tag in modo dichiarativo e nel normale formato jsx, che verrà spostato in primo piano (controlla l'utilizzo del server sul documento).

import React from 'react'; 
import MetaTags from 'react-meta-tags'; 

class Component1 extends React.Component { 
    render() { 
    return (
     <div class="wrapper"> 
      <MetaTags> 
      <title>Page 1</title> 
      <meta id="meta-description" name="description" content="Some description." /> 
      <meta id="og-title" property="og:title" content="MyApp" /> 
      <meta id="og-image" property="og:image" content="path/to/image.jpg" /> 
      </MetaTags> 
      <div class="content"> Some Content </div> 
     </div> 
    ) 
    } 
} 

Potrebbe piacerti anche per verificare react-helment se si dispone di un caso d'uso avanzato.

+0

Ho riscontrato un problema con i metatag duplicati durante il tentativo di utilizzare react-meta-tag. [react-helmet] (https://www.npmjs.com/package/react-helmet) ha fatto ** non ** tag duplicati sul percorso o sul cambiamento di stato. – Eddie

+0

Questo problema è stato risolto ora. –

3

Si può anche fornire la descrizione del titolo della pagina e del meta tag nel modo seguente.

inserisci un meta tag di descrizione nel tuo file index.html come questo.

<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<meta name="description" content=""> 
<title>Dynamic Page title here</title> 

nei file .js o file .jsx sotto il metodo render() scrivere il titolo della pagina e meta description per la pagina come questa.

render() 
{ 
document.title ="Welcome | here is your page title to display"; 
document.getElementsByTagName("META")[2].content="Your description about the page or site here to set dynamically"; 

return(
    <div>Page content</div> 
); 
} 
+0

Posso vedere i miei meta tag essere aggiornati usando questo approccio, ma quando uso il validatore di Twitter Card o il Debugger di Facebook, non trova i miei tag meta/opengraph :(Nota: I am static hosting – dparkar