如果未收到道具,则重定向到仪表板

时间:2018-05-18 03:56:33

标签: reactjs redirect routing react-router-v4

我通过点击React Link组件移动到目的地路线。在链接中,我指定了需要在目的地中获取的数据的ID,以及#39;到'支柱。如果用户单击链接并到达目的地,则没有任何问题。但是如果用户在浏览器中直接输入目标路由,则由于未传递id,因此抛出此错误。

  

无法阅读属性' lessonplan_id'未定义的

在lessonplan_id

的赋值中,构造函数中发生错误
this.state = {
            currSlide:0,
            slides: [],
            lessonplan_id: this.props.location.state.lessonplan_id
        }

我尝试捕获错误并使用Redirect。但它似乎不起作用。如果没有收到道具,我该如何自动重定向到仪表板?

1 个答案:

答案 0 :(得分:0)

如果您已在index.js或您可能用于路线的任何文件中按以下方式定义路线,

ReactDOM.render(
    <HashRouter>
        <Route
            path="/lessonplan/:lessonplan_id"
            component={LessonPlanComponent}
        />            
    </HashRouter>
)

您可以在lessonplan_id中找到LessonPlanComponent

this.props.match.params.lessonplan_id

无论你如何到达组件,它都能正常工作。