2017-01-06 8 views
-1

이 질문은 reactjs가 다시 렌더링을 처리하고 배열의 컴포넌트가 어떻게 작동하는지에 대한 일반적인 질문입니다.Reactjs가 컴포넌트 배열에 대해 다시 렌더링되지 않습니다.

그래서 나는 성분의 배열하지만 users 소품을 생성하는 기능은 다음과 같이 내가 할 경우 비어있다 : 난 그냥 return()render()에 직접 <StartMultiple key={this.count} users={this.state.users} id={this.count} delete_this={this.delete_this}/> 스틱 경우는 소품을 업데이트

// General look of the component 
// <StartMultiple key={this.count} users={this.state.users} id={this.count} delete_this={this.delete_this}/> 

// Just an example 
this.array = [] 
add_repeat() // do this 5 times, for example 

render(
    {this.array} // users prop is empty 
) 

add_repeat() 
{ 
    this.repeats.push(<StartMultiple key={this.count} users={this.state.users} id={this.count} delete_this={this.delete_this}/>); 
    this.setState({ repeats: this.repeats }); 
    this.count++; 
} 

을하지만, 적절한. (this.setState()에 의해 업데이 트되고)

내 질문에, 거기에 비어있는 배열 소품을 구성 요소 배열 안에 해결하는 방법이 있습니까? 아니면 그냥 다른 방식으로 표시해야합니까? 예 : map()

+1

는, 그것이이 아이에게 소품을 보내 전송하지 않거나 렌더링 나던 :

는 "상태에 갈해야하는지"에 여기를 참조하시기 바랍니다. 귀하의 문제가 분명하지 않습니다 –

+0

렌더링하지만 사용자 prop가 올바르게 설정되지 않았습니다 (비어 있음) –

답변

1

반응 구성 요소는 상태에 속하지 않으며 반응 상태에는 해당 상태를 시각적으로 나타내는 구성 요소가 아닌 직렬화 가능 응용 프로그램 상태가 있어야합니다. 첫 번째 접근 방식을 따르

http://web.archive.org/web/20150419023006/http://facebook.github.io/react/docs/interactivity-and-dynamic-uis.html#what-shouldnt-go-in-state

+0

정말 테스트였습니다. 라이브에서 작동하는 방식은 백엔드에서 일부 데이터를 가져온 다음 해당 데이터를 사용하여 구성 요소 배열을 만드는 것입니다. 그러나 나는 데이터가 업데이트되기 전에 배열을 만들도록 약속을 사용하고 있었기 때문에 또한 생각합니다. 그러나 상태가 나올 때 구성 요소가 다시 렌더링 될 것으로 예상했습니다. –

+0

차가움. 비동기 작업이 없어도 원래 스 니펫이 작동하지 않아야합니다. 시각적 표현이 아닌 상태로 데이터를 저장하는 데 집중하십시오. – Chris

+0

음, 나는 그것을 작동 시키려고합니다. 그것들은 정적 인 정보 일 뿐이므로 나는 괜찮을 것이라고 생각합니다. 하지만 명확히하기 위해,이 데이터를 렌더링 외부의 구성 요소에 넣었습니다. 다시 렌더링 된 것을 인식하지 못합니다. 올바른 것입니까? –