【发布时间】:2017-05-25 11:32:19
【问题描述】:
我正在尝试对我的 react-native View 中的列表进行排序
- 触发 sortArrayAsc 函数的 onClick 正在工作
- sortArrayAsc 结果集正在运行
- 取消注释调试器部分显示数据源中的值是新排序的顺序
我遇到的问题是,我认为使用 setState 会自动重新呈现列表......这没有发生。
如果没有,有什么想法我缺少什么或该怎么做?
任何指导/代码更新将不胜感激
干杯
export default class HomeScreen extends Component {
constructor(props) {
super(props);
dataSource = new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 } );
sortedData = data;
this.state = { dataSource: dataSource.cloneWithRows(sortedData) };
}
sortArrayAsc(array, key) {
return array.sort(function (a,b) {
console.info(b.amount)
return b.amount < a.amount ? -1
: b.amount > a.amount ? 1
: 0
})
}
_onPress() {
sortedData = this.sortArrayAsc(sortedData, 'amount')
let dataSource = this.state.dataSource.cloneWithRows(sortedData)
//debugger
this.setState = ( this.state.dataSource: dataSource )
}
_renderRow (rowData, sectionID) {
return (
<ListItem
...
onPress = { () => { this._onPress() } }
...
/>
)
}
render() {
return (
<View>
<List>
<ListView
dataSource = {this.state.dataSource}
renderRow = {this._renderRow.bind(this)}
/>
</List>
</View>
)
}
};
【问题讨论】:
标签: listview react-native listitem