React-router Invariant Violation : 루트 경로는 단일 요소를 렌더링해야합니다.

짜렉 19937

내 앱에 세션 소품을 추가하는 것과 관련된 reactjs.co의 튜토리얼을 완료했습니다. https://github.com/davezuko/react-redux-starter-kit을 사용하고 있습니다 . 지금은 여전히 ​​앱을 개발 중이며 새로운 요구 사항이 있습니다. 내가 원하는 것은 세션 상태가 변경 될 때 CoreLayout에서 Nav 또는 Main Conatainer로 소품을 전달하는 것입니다. 문제는 CoreLayout에서 세션 소품을 볼 수 없어서 보낼 수 없다는 것입니다. 이것이 CoreLayout.js의 내 코드라고 가정 해 봅시다.

class CoreLayout extends Component = {
    return (
        <div className='container text-center'>
            <Nav />
            <Main />
            <div className={classes.mainContainer}>
                {this.props.children}
            </div>
        </div>
    )
}

나는 올바른 방법으로하고 싶다. 내가하려고 한 것은 CoreLayoutContainer를 만드는 것이지만 Invariant Violation에 갇혀 있습니다. 루트 경로는 단일 요소를 렌더링해야합니다.

이 상황에서 내 코드는 감속기가있는 일반 컨테이너와 유사하므로 컨테이너 파일, index.js 파일은 다른 컨테이너 및 index.js와 유사합니다. 주요 변경 사항은 CoreLayout의 index.js를 포함하고 구성 요소를 변경하려고 시도하는 모든 경로의 index.js에 있습니다. 나 :)하지만 만약에

index.js

import { injectReducer } from '../../store/reducers'

export default (store) => ({
  path: 'CoreLayout',
  /*  Async getComponent is only invoked when route matches   */
  getComponent (nextState, cb) {
    /*  Webpack - use 'require.ensure' to create a split point
        and embed an async module loader (jsonp) when bundling   */
    require.ensure([], (require) => {
      /*  Webpack - use require callback to define
          dependencies for bundling   */
      const CoreLayout = require('./container/CoreLayoutContainer').default
      const reducer = require('./modules/corelayout').default

  /*  Add the reducer to the store on key 'about'  */
  injectReducer(store, { key: 'CoreLayout', reducer })

  /*  Return getComponent   */
  cb(null, CoreLayout)

/* Webpack named bundle   */
}, 'CoreLayout')
}})

컨테이너

import React from 'react'
import { connect } from 'react-redux'
import { increment, doubleAsync } from '../modules/corelayout'

import CoreLayout from '../CoreLayout'

const mapActionCreators = {
  increment: () => increment(1),
  doubleAsync
}

const mapStateToProps = (state) => ({
  core: state.core,
  session: state.session
})


class CoreLayoutContainer extends React.Component {
  constructor(props) {
    super(props)
    console.log("corelayout")
    console.log(this.props)
    // console.log(props)
    console.log(this.props.router)
    console.log(this.props.session)
  }

  componentWillReceiveProps(nextProps) {
    console.log("get the new props")
    console.log(this.props)
  }

  render() {
    return (
      <CoreLayout />
    )
  }
}


export default connect(mapStateToProps, mapActionCreators)(CoreLayoutContainer)

이 예에서는 액션이 ​​흥미롭지 않습니다.

업데이트 경로 생성 코드를 추가하는 것을 잊었습니다.

import CoreLayout from '../layouts/CoreLayout/index'
import Home from './Home'
import CounterRoute from './Counter'
import DashboardRoute from './Dashboard'
import AboutRoute from './About'
import ContactRoute from './Contact'
import PartnersRoute from './Partners'
import LoginRoute from './Login'
import RegisterRoute from './Register'



export const createRoutes = (store) => ({
  path: '/',
  component: CoreLayout(store),
  indexRoute: Home,
  childRoutes: [
    CounterRoute(store),
    DashboardRoute(store),
    AboutRoute(store),
    ContactRoute(store),
    PartnersRoute(store),
    LoginRoute(store),
    RegisterRoute(store)
  ]
})

누군가가 나를 도울 수 있기를 바랍니다. 감사합니다, Cezary

자유로운 영혼

수행 할 두 가지 :

CoreLayout.js

export const CoreLayout = (props) => {
  return (
    <div className='container text-center'>
      <Nav />
      <Main />
      <div className={classes.mainContainer}>
        {props.children}
      </div>
    </div>
  )
}

route / index.js

import CoreLayoutContainer from '../layouts/CoreLayout/container/CoreLayoutContainer'

export const createRoutes = (store) => ({
  path: '/',
  component: CoreLayoutContainer,
  // ... rest of the things

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

React Router-모든 경로를 한 번에 렌더링해야합니까?

분류에서Dev

동일한 경로로 구성 요소를 렌더링하지 않는 React-Router Switch 구성 요소

분류에서Dev

React Router는 항상 NotFound 기본 구성 요소를 렌더링합니다.

분류에서Dev

React-Router Redirect는 컴포넌트의 일부만 렌더링합니다.

분류에서Dev

react-router를 사용하여 경로를 기반으로 컨테이너 / 구성 요소를 렌더링하려면 어떻게해야합니까?

분류에서Dev

React-router-dom : 하나의 경로에서 두 개의 구성 요소를 렌더링합니다.

분류에서Dev

React 테스트 라이브러리, 동적 가져 오기 및 React Router DOM은 항상 찾을 수없는 구성 요소를 렌더링합니다.

분류에서Dev

React Router Link는 컴포넌트를 렌더링하지 않지만 URL을 변경합니다.

분류에서Dev

React는 동일한 div 요소를 다시 렌더링합니다 .- Reconciliation question

분류에서Dev

React Router는 링크를 변경하지만 적절한 구성 요소를 렌더링하지 않습니다.

분류에서Dev

React Invariant Violation : 개체는 React 자식으로 유효하지 않습니다.

분류에서Dev

ReactJS, react-bootstrap, Modal Box : "오류 : 너무 많은 다시 렌더링. React는 무한 루프를 방지하기 위해 렌더링 수를 제한합니다."

분류에서Dev

오류 : 다시 렌더링이 너무 많습니다. React는 무한 루프를 방지하기 위해 렌더링 수를 제한합니다.

분류에서Dev

다시 렌더링이 너무 많습니다. React는 무한 루프 오류를 방지하기 위해 렌더링 수를 제한합니다.

분류에서Dev

다시 렌더링이 너무 많습니다. React는 무한 루프를 방지하기 위해 렌더링 수를 제한합니다. useState 문제?

분류에서Dev

Uncaught Invariant Violation: Minified React error

분류에서Dev

Invariant Invalid를 일으키는 React Native Button

분류에서Dev

React Router는 ftp 서버에 빌드 한 후 구성 요소를 렌더링하지 않습니다.

분류에서Dev

react-test-library는 테스트에서 선언 된 기능 구성 요소를 렌더링합니다.

분류에서Dev

배열이 변경되었지만 일부 키가 동일하게 유지되는 경우 React는 FOR 루프의 모든 구성 요소를 다시 렌더링합니까?

분류에서Dev

React Router 4에서 구성 요소를 단위 테스트하는 방법

분류에서Dev

문서 루트 요소 "beans"는 DOCTYPE 루트 "null"과 일치해야합니다.

분류에서Dev

커스텀 React Component Library에서 컴포넌트를 가져오고 사용하면 Invariant Violation : Invalid hook call이 발생합니다.

분류에서Dev

react-router-dom을 사용하여 URL 경로가 일치 할 때 React 구성 요소가 마운트 해제되는 것을 방지하는 방법

분류에서Dev

Invariant Violation :“Connect (Login)”컨텍스트에서“store”를 찾을 수 없습니다.

분류에서Dev

react-native onPress ()는 루프 구성 요소 렌더링을 자동으로 전환합니다.

분류에서Dev

여러 개의 다른 컴포넌트를 렌더링 할 수있는 동일한 React 컴포넌트를 여러 개 렌더링합니까?

분류에서Dev

React createElement 유형은 null / Uncaught Invariant Violation이 아니어야합니다.

분류에서Dev

react-router-dom을 사용하여 구성 요소를 렌더링하는 경로를 추가하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    React Router-모든 경로를 한 번에 렌더링해야합니까?

  2. 2

    동일한 경로로 구성 요소를 렌더링하지 않는 React-Router Switch 구성 요소

  3. 3

    React Router는 항상 NotFound 기본 구성 요소를 렌더링합니다.

  4. 4

    React-Router Redirect는 컴포넌트의 일부만 렌더링합니다.

  5. 5

    react-router를 사용하여 경로를 기반으로 컨테이너 / 구성 요소를 렌더링하려면 어떻게해야합니까?

  6. 6

    React-router-dom : 하나의 경로에서 두 개의 구성 요소를 렌더링합니다.

  7. 7

    React 테스트 라이브러리, 동적 가져 오기 및 React Router DOM은 항상 찾을 수없는 구성 요소를 렌더링합니다.

  8. 8

    React Router Link는 컴포넌트를 렌더링하지 않지만 URL을 변경합니다.

  9. 9

    React는 동일한 div 요소를 다시 렌더링합니다 .- Reconciliation question

  10. 10

    React Router는 링크를 변경하지만 적절한 구성 요소를 렌더링하지 않습니다.

  11. 11

    React Invariant Violation : 개체는 React 자식으로 유효하지 않습니다.

  12. 12

    ReactJS, react-bootstrap, Modal Box : "오류 : 너무 많은 다시 렌더링. React는 무한 루프를 방지하기 위해 렌더링 수를 제한합니다."

  13. 13

    오류 : 다시 렌더링이 너무 많습니다. React는 무한 루프를 방지하기 위해 렌더링 수를 제한합니다.

  14. 14

    다시 렌더링이 너무 많습니다. React는 무한 루프 오류를 방지하기 위해 렌더링 수를 제한합니다.

  15. 15

    다시 렌더링이 너무 많습니다. React는 무한 루프를 방지하기 위해 렌더링 수를 제한합니다. useState 문제?

  16. 16

    Uncaught Invariant Violation: Minified React error

  17. 17

    Invariant Invalid를 일으키는 React Native Button

  18. 18

    React Router는 ftp 서버에 빌드 한 후 구성 요소를 렌더링하지 않습니다.

  19. 19

    react-test-library는 테스트에서 선언 된 기능 구성 요소를 렌더링합니다.

  20. 20

    배열이 변경되었지만 일부 키가 동일하게 유지되는 경우 React는 FOR 루프의 모든 구성 요소를 다시 렌더링합니까?

  21. 21

    React Router 4에서 구성 요소를 단위 테스트하는 방법

  22. 22

    문서 루트 요소 "beans"는 DOCTYPE 루트 "null"과 일치해야합니다.

  23. 23

    커스텀 React Component Library에서 컴포넌트를 가져오고 사용하면 Invariant Violation : Invalid hook call이 발생합니다.

  24. 24

    react-router-dom을 사용하여 URL 경로가 일치 할 때 React 구성 요소가 마운트 해제되는 것을 방지하는 방법

  25. 25

    Invariant Violation :“Connect (Login)”컨텍스트에서“store”를 찾을 수 없습니다.

  26. 26

    react-native onPress ()는 루프 구성 요소 렌더링을 자동으로 전환합니다.

  27. 27

    여러 개의 다른 컴포넌트를 렌더링 할 수있는 동일한 React 컴포넌트를 여러 개 렌더링합니까?

  28. 28

    React createElement 유형은 null / Uncaught Invariant Violation이 아니어야합니다.

  29. 29

    react-router-dom을 사용하여 구성 요소를 렌더링하는 경로를 추가하는 방법은 무엇입니까?

뜨겁다태그

보관