Reactjs没有为组件数组重新渲染

时间:2017-01-06 04:02:24

标签: javascript reactjs react-dom

这是一个关于reactjs处理重新渲染以及数组中组件如何工作的一般方式的更多问题。

所以我有一个创建组件数组的函数,但users道具是空的,如果我按如下方式执行:

// 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++;
} 

但是,如果我只是将<StartMultiple key={this.count} users={this.state.users} id={this.count} delete_this={this.delete_this}/>直接粘贴到return()render(),它会根据需要更新其道具。 (由this.setState()更新)

所以我的问题是,有没有办法在组件数组中修复这个空数组道具,或者我应该只是想以另一种方式显示它们?例如。 map()

1 个答案:

答案 0 :(得分:1)

React组件不属于状态,react状态应该包含可序列化的应用程序状态,而不是可视化表示该状态的组件。

请看这里,&#34;什么不应该进入状态&#34;:

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