这个handleChange方法在做什么?

时间:2020-11-02 15:19:05

标签: javascript reactjs

handleChange(e) {
        const index = Number(e.target.id.substring(e.target.id.length - 1, 19));
        const copyFormArray = JSON.parse(JSON.stringify(this.state.educationData));
        copyFormArray[index][e.target.name] = e.target.value;
        this.setState({
            educationData: copyFormArray,
        });
    };

这个handleChange方法有什么作用,特别是在index变量中?我了解子字符串和Number构造函数的作用,但是第二个参数尽管可以按预期工作,但找不到该特定问题的任何答案。

1 个答案:

答案 0 :(得分:0)

子字符串以一种棘手的方式工作,如果第二个参数(在您的情况下为19)小于第一个参数-则它们将被“交换”,否则,它将仅在索引(参数1和参数2)之间使用文本。

例如说我有一个字符串:

var x = "aaaaa-5";

如果我会写:

x.substring(x.length-1)

它将给我“ 5”。

然后如果我要写:

x.substring(3,6)

它将给我“ aa-”

但是如果我会写:

x.substring(6,3)

它将与上一个呼叫完全相同-“ aa-”

所以子字符串的内部逻辑是这样的:

function substring(start,end) {
 if(start > end) {
    var buf = end;
    end = start;
    start = buf;
 }
 //... other logic
}