最近在使用ListView 做一个列表全选单选功能其中发现选中列表下改元素但是state没有发生改变,此时发现是组件没有重新渲染 解决方案如下:
import React, { Component } from 'react';
import {
StyleSheet,
View,
TouchableOpacity,
Dimensions,
ListView,
Text,
Image,
Platform,
} from 'react-native';
export default class SelectPeople extends React.Component {
constructor(props) {
super(props);
let ds = new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 });
this.state = {
dataSource: ds.cloneWithRows([]),
isChecked: false,
isAllSelect: false,
selectMap: new Map(),
ds: ds //在此处定义ds (具体看官方文档)
};
this.list = [
{
employeeId: "66034821",
name: "黄擎一",
userId: "66034821",
selected: false
},
{
employeeId: "6622777",
name: "赵染",
userId: "6622777",
selected: false
},
{