问题是这个。基于状态变量,我要么在ListView renderRow上渲染可重用的组件,要么返回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项目。
任何线索?
答案 0 :(得分:0)
事情是ListView只有在其数据源发生变化时才会重新渲染。否则,它保持原样。因此,当您更改状态时,您可能还想更改dataSource属性中的值。