내 앱에는 user
개체가 있거나 없을 수있는 상태가 있습니다.Redux : 부모 앞에서 소품을받는 어린이
내가 두 개의 컨테이너와 두 개의 구성 요소가 있습니다
ParentContainer :
const mapStateToProps = (state) => ({
showUserDetails: Boolean(state.user),
})
export default connect(mapStateToProps)(ParentComponent)
parentComponent에 :
const ParentComponent = ({ showUserDetails }) => (
<div>
{showUserDetails && <ChildContainer />}
</div>
)
ChildContainer :
const mapStateToProps = (state) => ({
name: state.user.name,
})
export default connect(mapStateToProps)(ChildComponent)
ChildComponent :
const ChildComponent = ({ name }) => (
<h1>{name}></h1>
)
,
state.user = null
을 설정하는 작업을 한 후,
ChildContainer
ParentContainer
전에 렌더링을 시도 따라서는
null.name
에 액세스 할 수있는 예외를 throw 어디 시나리오로 실행하고 그러나.
Redux의 예상되는 동작으로, 하위 컨테이너가 부모보다 먼저 렌더링 될 수 있습니까? 고전적인 반응 흐름에서는이 오류가 발생하지 않습니다.
용기를 사용하는 대신 을 ParentComponent
에 그냥 부르면됩니다. 그러나 현실 세계에서 나는 여러 가지 다른 부분에 접근하는 구성 요소를 깊이 중첩 시켰기 때문에 소품을 쉽게 통과시킬 수는 없습니다.
이 근무 , 감사. 일괄 업데이트에 대한 정보를 얻을 수있는 좋은 장소와 왜이 문제가 해결 된 이유는 무엇입니까? –
@BenSmith 요컨대 일괄 처리의 아이디어는 동일한 js 틱 동안 여러 setState 호출이 React에서 하나의 렌더링 만 생성한다는 것입니다. 그것이 문제 체크 아웃을 일으키는 이유에 대해서는 원래의 Github 문제 https://github.com/reactjs/react-redux/issues/86 여기에서와 똑같은 일이 일어나고 있습니다. – Epeli