Загрузка...

How can I make it so that when the button is clicked, an if is triggered and performs an action?

Thread in Node.js created by ALL_KALL Jun 22, 2021. 192 views

  1. ALL_KALL
    ALL_KALL Topic starter Jun 22, 2021 10 Dec 5, 2020
    Учу js начал писать приложения на react. Я немного не понимаю, как можно сделать так, чтобы при нажатии на кнопку срабатывало условие. Функция возвращает булы.[IMG] Функция go вызывается из app. [IMG]
     
  2. asdfowner
    asdfowner Jun 22, 2021 8 May 10, 2021
    Все элементарно, в if после go добавь круглые скобки.
    Должно получится так
    JavaScript

    async e => if (await check_subscripe()) {go(e)}
    Ну и эвент не забудь захватить и передать его, просто так он в ту функцию не попадет
     
    1. ALL_KALL Topic starter
    2. ALL_KALL Topic starter
      asdfowner, такую вот ошибку выдает [IMG]
    3. asdfowner
      ALL_KALL, onClick вызывает переданную функцию при клике на элемент, при этом передает в нее первым аргументом ReactEvent клик.
      Ты уже передаешь в него асинхронную анонимную функцию, происходит ее вызов и передается эвент. Самостоятельно ее вызывать нет необходимости. А вот функции внутри нее вызывать уже нужно вручную, т.к. реакт доступа к ним уже не имеет.
      Я же правильно понял, что функция go должна принимать на вход эвент?
      А для того что бы понять что за ошибка, достаточно ее закинуть в переводчик. Тут написанно что у эвента, свойство currentTarget это null, а у null нет свойства dataset. Решение очень простое, получше разобраться в евентах реакта. Именно потомучто, при добавлении слушателя эвента таким образом, вместо обычного эвента передается эвент реакта, у которого уже нет свойства currentTarget, зато есть простое анологичное свойство target. Замени currentTarget на target.
      В следующий раз советую немного погуглить сначала, перед тем как вопрос задавать.
Loading...
Top