2017-07-12 4 views
0

Ich habe eine Bildkomponente namens "Sidebar" in einer Datei und eine Hauptinhaltskomponente, "Main" in einem anderen. Ich rende sie beide in einer anderen Komponente in einer anderen Datei namens "Suche". Das einzige Problem ist, dass der Inhalt von "Main" aufgrund der langsameren Ladezeit des Bildes hinter "Sidebar" wiedergegeben wird. Ich weiß, dass ich componentDidMount oder componentWillMount oder etwas verwenden sollte, aber ich verstehe die React-Dokumente nicht, wie man dieses benutzt, da sie kein Beispiel für diese zur Verfügung stellen. Könnte mir bitte jemand sagen, wie man das mit dem folgenden Code macht?Wie kann ich Image Component zuerst in ReactJS rendern?

Sidebar.jsx

export default class Sidebar extends React.Component { 
    render() { 
     return (
      <div style = {{display: 'flex', 
          flexDirection: 'row', 
          position: 'absolute', 
          top: 0, 
          left: 0}}> 
       <BackgroundImage/> 
       <Nav/> 
       <Logo/> 
      </div> 
     ); 
    } 
} 

Main.jsx

export default class Main extends React.Component { 
    render() { 
     return (
       <div style ={{height: 900, width: 900, backgroundColor: 'yellow'}}/> 
     ) 
    } 
} 

Search.jsx

export default class Search extends React.Component { 
    componentWillMount() { 
     console.debug('componentWillMount'); 
    } 
    render() { 
    return (
     <div style = {{display: 'flex', flexDirection: 'row'}}> 
      <Sidebar/> 
      <Main/> 
     </div> 
    ); 
    } 
} 

Dank!

+0

Ihr Zwischencode-Snippet ist eine Wiederholung von Sidebar.jsx und nicht von Main.jsx. Ich vermute auch, dass die absolute Positionierung das Problem sein könnte, da dies das Element aus dem normalen Fluss herauszieht. Können Sie das Problem in einer JS-Sandbox wie https://codepen.io/ neu erstellen und mit dem Link bearbeiten? – gvfordo

+0

@gvfordo sieht aus wie Jessie es repariert hat. –

+0

Ich habe es nicht behoben, aber ich korrigierte den Fehler in meinem Beitrag. Ich werde auf Codepen posten. Vielen Dank! –

Antwort

0

Ich reparierte das und nicht sicher, welches von denen den Trick, aber anscheinend hatte ich auch Position: 'absolut' in einer anderen Datei, die Dinge vermasselte, also nahm ich das heraus und benutzte dann flexBox in der Suchseite um Komponenten in einer Reihe darzustellen. Danke für die Hilfe!

Verwandte Themen