ConnectedRouter A 可能只有一个子元素但它有一个子元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ConnectedRouter A 可能只有一个子元素但它有一个子元素相关的知识,希望对你有一定的参考价值。

所以我有我的App.tsx我使用来自react-router 4的交换机

import { Rate } from 'antd'
import * as React from 'react'
import './App.scss'

import { Route, Switch } from 'react-router' // react-router v4

class App extends React.Component {
  public render() {
    return (
      <div className="App">
        <div> { /* your usual react-router v4 routing */}
          <Switch>
            <Route exact path="/" render={() => (<div>Match</div>)} />
            <Route render={() => (<div>Miss</div>)} />
            <Rate />
          </Switch>
        </div>
      </div>
    )
  }
}

export default App

我有这样的index.tsx这里我使用connected-react-router连接到redux。

import * as React from 'react'
import * as ReactDOM from 'react-dom'
import App from './App'
import './index.scss'
import registerServiceWorker from './registerServiceWorker'

import store, { history } from './store'

import { Provider } from 'react-redux'
import { ConnectedRouter } from 'connected-react-router'

ReactDOM.render(
  <Provider store={store}>
    <ConnectedRouter history={history}> { /* place ConnectedRouter under Provider */}
      <App />
    </ConnectedRouter>
  </Provider>,
  document.getElementById('root') as htmlElement
)
registerServiceWorker()

正如你所看到的,路由器确实只有一个元素但是我得到一个错误,路由器应该只有一个孩子。这是连接反应路由器的错误还是我在这里丢失了什么?

答案

ConnectedRouter组件内的注释导致了问题。事实证明,评论也算作孩子。通过将注释移到上面一行来修复它:

ReactDOM.render(
  <Provider store={store}>
    { /* place ConnectedRouter under Provider */}
    <ConnectedRouter history={history}>
      <App />
    </ConnectedRouter>
  </Provider>,
  document.getElementById('root') as HTMLElement
)

以上是关于ConnectedRouter A 可能只有一个子元素但它有一个子元素的主要内容,如果未能解决你的问题,请参考以下文章

dtoi4539「TJOI / HEOI2016」序列

使用 connectedRouter 时 Redux 中出现意外的键、“长度”、“动作”、“位置”等

connectedRouter错误:在状态树中找不到路由器reducer,它必须安装在“router”下

BZOJ4553: [Tjoi2016&Heoi2016]序列

connectedRouter 错误:在状态树中找不到路由器减速器,它必须安装在“路由器”下

connectedRouter 错误:在状态树中找不到路由器减速器,它必须安装在“路由器”下