누군가가 반응-REDUX와 다음을 수행하는 방법에 대한 단서 나에게 줄 수 :redux에서 상태 변경에 응답하고 다른 작업을 파견하는 방법은 무엇입니까?
구성 요소 A가 상태를 업데이트하는 작업 (비동기)를 전달에게
구성 요소 B는 (A 아니 하위 구성 요소)에 필요 상태가 바뀌면 다른 행동을 파견 할 수 있어야합니다.
제 문제는 구성 요소 B에서 작업 2를 디스패치하려고 할 때 상태가 여전히 초기 상태이며 업데이트되지 않습니다. 두 번째 동작은도 (비동기도 등)의 상태를 업데이트하기 때문에
내가 또한 componentWillUpdate의 행동이 파견 시도했다, 그러나, 이것은 그것이 같은 모습입니다
무한 루프를 만들고 더 많거나 적은 :
당신의 돌아 오는 코드를 보지 않고//----- Component A
class ComponentA extends React.Component {
constructor(props) {
super(props);
this.props.dispatch(loadEvents()); // loadEvents is async and will update state.eventsState
}
}
const mapStateToProps = function (state) {
return {
eventsState: state.eventsState,
};
};
export default connect(mapStateToProps)(ComponentA);
//----- Component B
class ComponentA extends React.Component {
constructor(props) {
super(props);
props.dispatch(getEventUsers(props.eventsState.eventId)); // the eventsState is in initial state here (empty)...where do I call getEventUsers?
}
componentWillUpdate(nextProps) {
nextProps.dispatch(getEventUsers(props.eventsState.eventId)) // Creates an infinite loop, getEventUsers also updates state
}
}
const mapStateToProps = function (state) {
return {
eventsState: state.eventsState,
};
};
export default connect(mapStateToProps)(ComponentA);
구성 요소 B는로드 시작과로드 사이의 시간을 고려해야합니다. 회 전자 또는 아무것도 표시하지 않을 수 있습니다 (빈 div). 'loadEvents' 감속 기가 동기식이라하더라도 먼저 전달되도록 보장 할 수는 없습니다. React는'shouldComponentUpdate' 나 컴포넌트 생성자와 같은 다양한 함수를 호출 할 때 혼자 결정합니다. – DDS