Передать второй аргумент функции, которая автоматически принимает первый аргумент - PullRequest
0 голосов
/ 04 октября 2018

Функция onChange автоматически принимает только первый аргумент (среда разработки ant передает этот автоматический аргумент).

Вызов функции: 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?

ссылка antd

См. Код раздела checkall в этой ссылке.Разверните код, пожалуйста.

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

Вы можете использовать синтаксис функции стрелки ES6.

Итак, скажем, до сих пор вы делали это:

<div onClick = {this.onChange} />

Теперь попробуйте это:

<div onClick = {(automatic_argument) => 
this.onChange(automatic_argument,this.my_argument)} />
0 голосов
/ 04 октября 2018

Я бы предложил это.

onChange = (...args) => {
    //you have access to all arguments in an array.
}

Количество передаваемых аргументов не имеет значения

0 голосов
/ 04 октября 2018

В основном, чтобы передать несколько аргументов в функцию-обработчик, вы должны сделать, как показано ниже.

 onChange={event => this.onChange(event, my_argument)}

Чтобы получить значение или идентификатор элемента, используйте event.target like

 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);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...