ListView 不会在状态更改时重新渲染
Posted
技术标签:
【中文标题】ListView 不会在状态更改时重新渲染【英文标题】:ListView Will not re-rendered on state change 【发布时间】:2017-11-16 18:00:15 【问题描述】:问题是这样的。基于状态变量,我要么在 ListView 渲染行上渲染可重用组件,要么返回 null。
//renderRow
if (this.state.openSections[sectionID] === false) return null
return (<View style = flex :1, overflow : 'hidden'>
<CalculatorItem item = rowData></CalculatorItem>
</View>)
当按下某个部分时,openSections 对象中的相应条目会切换为 true 或 false,指示应呈现行,以便对用户可见。
sectionPressed: function(sectionID)
...
//create a new openSections var and set the state
this.setState((state, props) => return openSections );
但是,listview 项目不会被渲染。
有什么线索吗?
【问题讨论】:
需要更多上下文。列表视图在哪里? 你能在这里分享代码吗? 【参考方案1】:问题是 ListView 仅在其数据源发生更改时才会重新呈现。否则,它将保持原样。因此,当您更改状态时,您可能还想更改 dataSource 属性中的值。
【讨论】:
以上是关于ListView 不会在状态更改时重新渲染的主要内容,如果未能解决你的问题,请参考以下文章
React Native ListView 不会通过单击重新呈现状态更改
state 用作组件中的 props,状态更改不会重新渲染组件