为什么剪接仅删除最后一个元素而不能按键工作?

时间:2019-02-12 05:14:34

标签: reactjs

deleteProtoItem = (protoKey) => {
        return e => {
            if (!isUndefined(e)) {
                e.preventDefault();
            }
            const {protocol} = this.state;
            modalConfirm(`<div>Вы уверены что хотите удалить эту строку?</div>`, {
                cancel: "Не удалять",
                ok: "Удалить"
            }).then(() => {
                protocol.tasks.splice(protoKey, 1);
                this.setState({protocol}, () => {
                });
            }).catch(handleErrorResponse);
        };
    };

当我删除元素时,不管它的键号是0还是3,无论如何拼接只会删除最后一个元素。

Protocol.tasks数组

x

1 个答案:

答案 0 :(得分:0)

这可能是因为protoKey is undefined,请尝试passing protoKey to the callback

deleteProtoItem = (protoKey) => {
        return e => {
            if (!isUndefined(e)) {
                e.preventDefault();
            }
            const {protocol} = this.state;
            modalConfirm(`<div>Вы уверены что хотите удалить эту строку?</div>`, {
                cancel: "Не удалять",
                ok: "Удалить"
            }).then((protoKey) => {
                protocol.tasks.splice(protoKey, 1);
                this.setState({protocol}, () => {
                });
            }).catch(handleErrorResponse);
        };
    };