gpt4 book ai didi

javascript - React-router Webpack HMR。根路由必须渲染单个元素

转载 作者:行者123 更新时间:2023-11-28 14:57:09 25 4
gpt4 key购买 nike

我试图弄清楚当 HMR 启用并卡在以下错误时,react-router 在 AppContainer 内如何工作。您能解释一下黑客攻击是怎么回事吗?

Invariant Violation: The root route must render a single element

Index.js

import React from 'react';
import ReactDOM from 'react-dom';

import { AppContainer } from 'react-hot-loader';
// AppContainer is a necessary wrapper component for HMR

import Routes from './routes/index';
const MOUNT_APP = document.getElementById('root');

const render = () => {
ReactDOM.render(
<AppContainer>
<Routes />
</AppContainer>,
MOUNT_APP
);
};

render();

// Hot Module Replacement API
if (module.hot) {
module.hot.accept('./routes/index', () => {
render()
});
}

路由文件是:

import React from 'react';
import { Router, IndexRoute, browserHistory } from 'react-router';

import Home from './Home';
import SubView from './Sub';

const componentRoutes = {
component : Home,
path : '/',
indexRoute : SubView,
childRoutes : [

]
}

const Routes = () => {
return (
<Router history={browserHistory} routes={componentRoutes} />
);
};

export default Routes;

HomeView 组件:

import React from 'react';

const HomeView = () => {
<div>
<h4>Welcome</h4>
</div>
}

export default HomeView;

HomeView路线:

import HomeView from './components/SubView';

export default {
component: HomeView
}

PS:SubView 等于 HomeView。

最佳答案

您需要从组件返回一个元素。现在,您的 HomeView 组件如下所示:

const HomeView = () => {
<div>
<h4>Welcome</h4>
</div>
}

您需要返回标记,而不是像这样将其放入函数体内:

const HomeView = () => {
return (
<div>
<h4>Welcome</h4>
</div>
)
}

关于javascript - React-router Webpack HMR。根路由必须渲染单个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42451358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com