我在Android上使用React Native(0.29.0),并在我的页面上有一个ListView组件。我希望能够从列表中删除项目。我是相当新的反应原生。反应原生:从ListVIew删除正确的项目
这里是ListView的组件:
<ListView
key = {items} //An array of strings(same as the datasource)
dataSource = {this.state.datasource}
renderRow = {(rowData, sectionID, rowID) => <Item data={rowData} onPress={this.deleteItem}/>}
/>
下面是删除项目的方法,包括:
deleteItem(rowData, sectionID, rowID)
{
//items.splice(rowID ,1);
this.setState({datasource: ds.cloneWithRows(items)});
}
使用ROWID删除一个项试过了,它从列表中删除所述第一元件和该列表被重新呈现。 使用console.warn检查rowID中的内容,表示它是“未定义的”。
我在网上阅读了几个类似的问题,他们说我需要使用一个密钥,我不完全确定如何使用密钥。尝试将密钥传递给deleteItem方法,它再次说,密钥是“ undefined“
我发现很难确定哪些行需要从deleteItem方法中删除。如果有人能指导我正确的路径,这将是非常有益的,在此先感谢。
太感谢你了,它解决了我的问题,我不知道我必须使用()=>来创建一个方法来传递参数。 – Ajith
没问题,是的,你需要这样做。因为否则deleteItem方法将不会被任何参数调用。 onPress属于你的- 组件,与listview无关。 –
Jakkra