반응 애플리케이션을 구축 중이며 Redux를 사용하여 상태를 관리하고 라우터 v4를 라우팅합니다. 모듈 bundler로 webpack을 사용합니다. 그리고 그것은이 구조를 가지고 있습니다.새로 고침하지 않으면 깊은 중첩 된 하위 구성 요소의 소품이 표시되지 않습니다.
-Wrapper
-Home/
-Homepage /h
--GalleryContainer /h/gallery
---Gallery /h/gallery
---Item /h/gallery/:itemId
--About /h/about
--Links /h/links
은 내가 itemId
일치하는 경우에만 요소를 렌더링 할 Item
구성 요소에 있어요. 처음 표시 할 때 클릭하면 새로 고치지 않고 어떤 경우에는 모듈의 오류가 렌더링되지 않고 (그림의 경우) 렌더링되지만 페이지를 새로 고치면 렌더링되지 않으면 렌더링되지 않습니다. 렌더링은 다른 구성 요소에서는 잘 작동하지만이 경우에는 해당 매개 변수를 표시하는 데 필요한 매개 변수가 필요하지 않습니다.
올바른 방향으로 입력하거나 도움을 주시면 감사하겠습니다.
import React from 'react'
class Item extends React.Component {
render() {
const item=this.props.items[this.props.match.params.itemId]
return (
<div>
<h1> {item.title} </h1>
</div>
)
}
}
export default Item
편집 : 나는 그것을 클릭 한 후 표시 console.log(this.props.items)
경우처럼, 일반적으로 Item
구성 요소의 연결 구성 요소 표시에서 전달 된 소품. 하지만 일단 맞춤 매개 변수 const item=this.props.items[this.props.match.params.itemId]
에 의해 조건이 지정되면이 문제가 발생합니다.
추가 GalleryContainer 노선
<div>
<Route path={`${this.props.match.path}`}
exact render={(props)=><Gallery
gallery={this.props.gallery}
{...props} />} />
<Route path={`${this.props.match.path}/:itemId`}
render={(props)=><Item
gallery={this.props.gallery}
item={this.props.items} {...props} />} />
</div>
또 다른 구성 요소가이 문제를 명확히 게시 할 수있는 경우는, 알려주세요.
해결책 마침내 효과가있었습니다. 내가
처음에 렌더링에 오류를 설명에 공간을 추가 한 것으로 나타났다.<Link to={`h/portfolio/${pod.code}`}>
답장을 보내 주셔서 감사합니다. 그리고 난 그냥 해봤지만 같은 문제가 여전히 발생하지만 처음에는 "정의되지 않은 속성 제목을 읽을 수 없습니다"오류가 발생합니다. 새로 고침하면 작동합니다. – Ndx
내 대답을 편집했습니다. 문제를 해결해야합니다. – palsrealm
여전히 작동하지 않습니다. 동일한 문제가 발생합니다. 내가 정확히이 문제를 일으키는 원인과 반응 dev에 도구를 찾고 있어요, 내가'itemId'에 대한 경로에 "노드가 삭제되었습니다"그것은 구성 요소가 클릭 후 마운트 해제되고 있지만 새로 생성 된 후 다시 렌더링 된 것처럼 보입니다 ... – Ndx