我試圖設置一個登陸頁面,然後通過React導向我的主頁。我創建了一個名爲Splash
的着陸頁組件。我正在嘗試使用IndexRoute,以便我的應用程序顯示Splash
作爲我的初始頁面。這是我的app.js
:使用IndexRoute在我的React應用程序中設置着陸頁
import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, IndexRoute, hashHistory } from 'react-router';
import {Provider} from 'react-redux';
import store from '../store';
import App from 'views/App';
import Home from 'views/Home';
import About from 'views/About';
import Cart from 'views/webcart';
ReactDOM.render(
<Provider store={store}>
<Router history={ hashHistory }>
<Route path='/' component={ App }>
<IndexRoute component={ Splash } />
<Route path='about' component={ About } />
<Route path='Cart' component={ Cart } />
<Route path='Home' component= { Home }
</Route>
</Router>
</Provider>,
document.getElementById('app') // eslint-disable-line
);
這是我splash.js
文件:
import React, { Component } from 'react';
import Woods from './woods.jpeg';
import Logo1 from './whitestar.png';
export default class Splash extends Component {
render() {
return(
<div id='Splashwrapper'>
<img src={Woods}></img>
<img src={Logo1}></img>
</div>
);
}
}
我的問題是我的應用程序不會在第一次顯示Splash
,同時我的家庭和登陸頁面顯示。我怎樣才能做到這一點?
編輯
這是我Home
組件它可能會更好什麼,我要與着陸頁:
import React, { Component } from 'react';
import { Link } from 'react-router';
import Jag from './jag.jpg';
import Jag2 from './jag2.jpg';
import Logo from './nsplogo.jpeg';
var Music = React.createClass({
render: function() {
return (
<div>
<h2> BBB </h2>
</div>
);
}
});
export default class Home extends Component {
soundCloud() {
var SC = require('soundcloud');
SC.initialize({
client_id: 'YOUR_CLIENT_ID',
redirect_uri: 'http://example.com/callback'
});
}
constructor(){
super();
this.state = {
showSquareOne:false,
showSquareTwo:false,
}
this.toggleShowSquare = this.toggleShowSquare.bind(this);
}
toggleShowSquare(property){
this.setState((prevState)=>({[property]:!prevState[property]}))
}
componentDidMount() {
window.scrollTo(0, 0)
}
render() {
return (
<div className='Home' id='Home'>
<div id="musicwrapper" className={this.state.showSquareThree?'':'invisible'}>
<div id='musicsquare' className={this.state.showSquareOne?'':'invisible'}>
<h1>AAA</h1>
<div id="musicpics">
<img src={Jag} tabIndex="1" id='jag1'></img>
<img src={Jag2} tabIndex="1" id='jag2'></img>
</div>
<iframe width="560" height="315" src="" frameBorder="0" allowFullScreen></iframe>
<div id='Body'></div>
</div>
</div>
<div id='musicMenu'>
<ul>
<li id="music" onClick={()=>this.toggleShowSquare('showSquareOne')}>Music</li>
<li id="shows" >Shows</li>
<li id="collections">Collections</li>
</ul>
</div>
</div>
);
}
}
而且,我的應用程序有一個Menu
組件總是在頁面頂部,這一直給我的問題與着陸頁,因爲儘管着陸頁在那裏,菜單也顯示..
您可以將啓動畫面粘貼在基於布爾狀態的主頁渲染函數的頂部,然後在一兩秒後翻轉布爾值並顯示常規渲染。我相信這個解決方案會更加清潔,無論是從網站的角度和組織上。 –
也許你在你的路線之前缺少斜線:' ' –
xDreamCoding
我正在考慮在我的主頁上做這樣的事情。顯示組件,所以這對我來說會更好,因爲我試圖在着陸頁上顯示一個徽標,單擊它時會顯示「首頁」。 @MichaelLyons – feners