我想在列表视图中删除一行,但是当我取回数据时,它不会删除,因为setstate丢失了
render() {
const { navigation } = this.props;
const deleterow = navigation.getParam('deleterow', '500');
var newData = [...this.state.listViewData];
newData.splice(deleterow,1)
//this.setState({ listViewData: newData });
答案 0 :(得分:0)
您可以尝试componentwillreceiveprops
添加一个条件,然后执行setState。
您不想在render方法中添加setState。
答案 1 :(得分:0)
不允许使用组件的setState
方法执行render
。
据我了解,您的目的是修改将在您的render方法中处理的状态的listViewData
属性。调用setState将触发一个render()
,因此,如您在代码示例中所指出的,您希望在render方法中修改此属性,可以直接分配它并在分配之下对其进行处理,只要该值在仅render
:
render(){
const { navigation } = this.props;
const deleterow = navigation.getParam('deleterow', '500');
var newData = [...this.state.listViewData];
newData.splice(deleterow,1)
this.state.listViewData = newData;
// use this.state.listViewData to populate the items of your view
// ...