私はサイドバーといくつかのコンテンツを表示するルートに行きたいですが、undefined
を私のルートの一部として得て、ただ空白のページに行きます。なぜこれが起こっているのかは分かりませんが、どんな助けもありがたいです。私は、courseIdをパラメータとして取得するルートがなくてもそこに関係しているとはかなり確信していますが、それをどのように入れ子にするか、それをどのように動作させるかはわかりません。ここでリアクタ・ルータ3レンダリングされません
は私のルートは以下のとおりです。必要ならば
/*globals SideNavData:true */
const styles = {}
styles.sidebar = {
float: 'left',
width: 200,
padding: 20,
borderRight: '1px solid #aaa',
marginRight: 20
}
class Course extends Component {
render() {
let { sidebar, main, children, params } = this.props
let course = SideNavData[params.courseId]
let content
if (sidebar && main) {
content = (
<div>
<div className="Sidebar" style={styles.sidebar}>
{sidebar}
</div>
<div className="Main" style={{ padding: 20 }}>
{main}
</div>
</div>
)
} else if (children) {
content = children
} else {
content = <Dashboard />
}
return (
<div>
<h2>{course.name}</h2>
<Nav course={course} />
{content}
</div>
)
}
}
module.exports = Course
ここcodesandboxである:ここで
import App from './components/App'
import Course from './routes/Course/components/Course'
import AnnouncementsSidebar from './routes/Course/routes/Announcements/components/Sidebar'
import Announcements from './routes/Course/routes/Announcements/components/Announcements'
import Announcement from './routes/Course/routes/Announcements/routes/Announcement/components/Announcement'
import AssignmentsSidebar from './routes/Course/routes/Assignments/components/Sidebar'
import Assignments from './routes/Course/routes/Assignments/components/Assignments'
import Assignment from './routes/Course/routes/Assignments/routes/Assignment/components/Assignment'
render(
<Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="course/:courseId" component={Course}>
<Route path="announcements" components={{
sidebar: AnnouncementsSidebar,
main: Announcements
}}>
<Route path=":announcementId" component={Announcement} />
</Route>
<Route path="assignments" components={{
sidebar: AssignmentsSidebar,
main: Assignments
}}>
<Route path=":assignmentId" component={Assignment} />
</Route>
</Route>
</Route>
</Router>,
document.getElementById('root')
)
はもちろん、コンポーネントがあります編:あなたがルータのparamsからcourseId
を読んでいるが、ルートのルートでそのパラメータがライン上にCourse
コンポーネントではありませんhttps://codesandbox.io/s/pw0xvj6r0m
私は家を追加することができました。そのparam(上記のスニペットを編集しましたが、私はこれを本当に望んでいませんでした。私はルートの1つのレイヤーを削除したいと思っていました。あなたはそれをする方法を知っていますか?ここ ホーム成分である: は 'クラスホームコンポーネント{ は(レンダリング){ リターン(
あなたのコードが現在動作しているのを見る限り、私はそれを得ることはありません。何か不足していますか? –
はいそうです。しかし、私はそこに家のコンポーネントやルートを追加したくない。私はそのルートを取り除き、ルートコンポーネントとサイドバーがあるホームにコースコンポーネントを持たせたい – StuffedPoblano