javascript - 你如何通过反应路由器传递道具?
问题描述
import React, { Component } from 'react';
import {
Route,
BrowserRouter as Router,
Switch,
Redirect
} from "react-router-dom";
import Landing from './Pages/Landing';
import FourInARow from "./Pages/fourinarow";
import logo from './logo.svg';
import './App.css';
function PublicRoute({ component: Component, mode, ...rest}){
console.log(...rest)
return (
<Route
{...rest}
render={ (props) => mode !== null
? <Component {...rest} />
: <Redirect to={'/fourinarow'}/>
}
/>
);
}
export default class App extends Component {
constructor(){
super();
this.state = {
mode: null
}
}
setMode = (mode) => {
this.setState({mode: mode});
console.log('click');
}
render(){
return (
<div className="App">
<Router>
<Switch>
<Route exact path='/'
render={(props) => <Landing setMode={this.setMode}/>}/>
<PublicRoute
path='/fourinarow'
component={FourInARow}
mode={this.state.mode}/>
</Switch>
</Router>
</div>
);
}
}
我试图通过我的 PublicRoute 函数传递道具,希望以后添加一个需要身份验证的 privateRoute 函数。除了传递道具之外,这两个函数都可以正常工作。Route 组件已经在传递 props 了。
解决方案
我看到的一件事是PublicRoute
你正在解构mode
并且...rest
没有道具,但你没有传递mode
或props
进入Component
.
推荐阅读
- opengl - 纹理翻转行为
- r - 使用 dplyr::distinct() 时保留最后一次出现,而不是第一次出现(此处不能使用arrange())
- python - 如何使用数据生成器通过数据框列中的路径加载图像以进行双重输入
- r - 如何使用ggplot2在直线和倒置geom_density()之间添加垂直空格
- ios - 在从初始化程序返回之前,不会在所有路径上调用“self.init”
- kotlin - 在 Kotlin 中选择并显示日期
- ios - 快速视频流启动
- c# - 导出到统一时,搅拌机模型不导出材料。请帮忙?
- maven - Maven surefire插件输出测试摘要xml?
- android - 辅助功能节点信息获取图像内容