0
コンポーネントを変更しようとすると、主なアイデアは、ログインページを作成します。エラーReact router error(失敗した小道具の種類: `Switch`に供給された` prop`子が無効です、ReactNodeが必要です)
warning.js 6327:?36警告:失敗した小道具の種類:無効な小道具
children
Switch
に供給され、ReactNodeは期待しました。私はexport default() => { // Use it when sub routes are added to any route it'll work const login =() => { } const routeWithSubRoutes = route => ( <Route key={_.uniqueId()} exact={route.exact || false} path={route.path} render={props => ( // Pass the sub-routes down to keep nesting <route.component {...props} routes={route.routes || null} /> )} /> ); var isLogin = false; if(!isLogin) { return ( <Login /> ) } if(isLogin) { return ( <div className={styles.App}> <Helmet {...config.app} /> <NavBar /> <Switch> {routes.map(route => routeWithSubRoutes(route))} </Switch> </div> ); } };
このコードを変更しようと
class App extends Component { constructor(props) { super(props) } routeWithSubRoutes(route) { return ( <Route key={_.uniqueId()} exact={route.exact || false} path={route.path} render={props => ( // Pass the sub-routes down to keep nesting <route.component {...props} routes={route.routes || null} /> )} /> ); } render() { return ( <div className={styles.App}> <Helmet {...config.app} /> <NavBar /> <Switch> {routes.map(route => this.routeWithSubRoutes.bind(this,route))} </Switch> </div> ) } } export default App;
コードが動作しているが、私は、どのようにこの問題を解決することではない:
私のコードはありますか?
を –