函数onChange
自动仅接受第一个参数(蚂蚁设计框架会传递该自动参数)。
函数调用: this.onChange
函数声明:
onChange = (automatic_argument, my_argument) => {
//my code
}
my_argument
可以是我根据调用上下文定义的任何常量。
const LivingRoomOptions = ['a', 'b', 'c'];
const DinningRoomOptions = ['d', 'e', 'f'];
const BedroomOptions = ['g', 'h', 'i'];
我想根据调用的位置,将这些常量作为第二个参数传递给onChange
函数。
当我像这样this.onChange(my_argument)
调用函数时,它会简单地替换automatic_argument
,这很明显。
调用this.onChange(undefined, my_argument)
,只需插入未定义的位置即可代替automatic_argument
。
如何在不干扰my_argument
的情况下将onChange
传递到automatic_argument
?
请参阅此链接中的checkall
部分代码。请展开代码。
答案 0 :(得分:4)
基本上要将多个参数传递给处理函数,您应该在下面进行操作。
onChange={event => this.onChange(event, my_argument)}
要获取元素的值或id,请使用event.target
,例如
onChange = (event, my_argument) => {
console.log("value", event.target.value);
console.log("id", event.target.id);
//if it is checkbox then event.target.checked
console.log("checked", event.target.checked);
}
答案 1 :(得分:1)
您可以使用ES6 Arrow函数语法。
所以可以说直到现在您已经做到了:
<div onClick = {this.onChange} />
现在,尝试以下操作:
<div onClick = {(automatic_argument) =>
this.onChange(automatic_argument,this.my_argument)} />
答案 2 :(得分:-1)
我建议这个。
onChange = (...args) => {
//you have access to all arguments in an array.
}
传递的参数数量无关紧要