如何在 React Native 中使用复选框 select 列表视图中的多个项目?
How to select mulitple items with listview using checkbox in react native?
我正在处理带有复选框的列表视图。我正在尝试 select 多个项目,但我在结果中发现了一些东西,每次我单击复选框时,结果都会替换我选中的第一个项目
这是我的案例:
this.state = {
...
checkedBoxCheck: false,
selectedItems:[],
};
renderRow(rowData) {
return (
...
<CheckBox style={styles.checkboxed}
checked={rowData.id === this.state.checkedBoxCheck}
onPress={() => this.onItemSelect(rowData)}
/>
);
onItemSelect(row){
this.setState({
selectedItems: [{row}],
checkedBoxCheck: true,
});
let myitem = this.state.selectedItems.concat({row});
console.log(myitem);
}
您忘记在状态中写入先前的值 selectedItems:
this.setState((prevState) => ({
selectedItems: [...prevState.selectedItems, row],
checkedBoxCheck: true,
}));
并删除值(使用 lodash):
this.setState((prevState) => ({
selectedItems: _.without(prevState.selectedItems, row),
checkedBoxCheck: !!_.without(prevState.selectedItems, row).length,
}));
尝试使用 Form Builder 的 select 字段。
https://github.com/bietkul/react-native-form-builder
我正在处理带有复选框的列表视图。我正在尝试 select 多个项目,但我在结果中发现了一些东西,每次我单击复选框时,结果都会替换我选中的第一个项目
这是我的案例:
this.state = {
...
checkedBoxCheck: false,
selectedItems:[],
};
renderRow(rowData) {
return (
...
<CheckBox style={styles.checkboxed}
checked={rowData.id === this.state.checkedBoxCheck}
onPress={() => this.onItemSelect(rowData)}
/>
);
onItemSelect(row){
this.setState({
selectedItems: [{row}],
checkedBoxCheck: true,
});
let myitem = this.state.selectedItems.concat({row});
console.log(myitem);
}
您忘记在状态中写入先前的值 selectedItems:
this.setState((prevState) => ({
selectedItems: [...prevState.selectedItems, row],
checkedBoxCheck: true,
}));
并删除值(使用 lodash):
this.setState((prevState) => ({
selectedItems: _.without(prevState.selectedItems, row),
checkedBoxCheck: !!_.without(prevState.selectedItems, row).length,
}));
尝试使用 Form Builder 的 select 字段。 https://github.com/bietkul/react-native-form-builder