未在渲染方法中调用reactjs方法

时间:2018-10-17 17:57:12

标签: javascript reactjs

我有一个功能,可以根据给定索引的状态从数组中删除元素。在这里:

removeFromRowsById(index) {
    console.log("IN REMOVE FUNCTION");
    const newList = this.state.rows1;
    newList.splice(index, 1);
    this.setState({ rows1: newList });
}

我在我的渲染方法中这样调用它:

this.removeFromRowsById.bind(this, this.state.rows1.indexOf(this.returnValueToDelete(this.state.rows1[1]["id"])))

问题是,当我调用它时,什么也没发生。似乎该方法从未执行过,因为“ IN REMOVE FUNCTION”从未记录在控制台中,但是console.log(this.returnValueToDelete(this.state.rows1[index]["id"]))这样做了,因此我知道它将在if语句中进行。任何类型的帮助我都非常感谢。我是Reactjs的新手,并且已经为此工作了一段时间。谢谢!

2 个答案:

答案 0 :(得分:0)

您是否尝试过更改条件?

!(columnToFilterOut.indexOf(rows1[index]["id"]) > -1)

由于您不太可能拥有小于-1的索引,因此似乎永远不会满足此条件。

答案 1 :(得分:0)

尝试一下,希望这对您有用

removeFromRowsById(index) {
    console.log("IN REMOVE FUNCTION");
    const newList = this.state.rows1;
    newList.splice(index, 1);
    this.setState({ rows1: newList });
}

通过这种方式从渲染调用此函数:

this.removeFromRowsById(this.state.rows1.indexOf(this.returnValueToDelete(this.state.rows1[1]["id"])))