события нажатия не работают внутри моей функции карты - PullRequest
0 голосов
/ 03 февраля 2020

У меня небольшая проблема с моим кодом. Мой onClick не работает внутри функции карты, не только onClick, как onKeyPress, onKeyDown. но другие методы работают как onmouseover.

вот мой пример https://codesandbox.io/s/exciting-clarke-h1n4u

Спасибо за ответ.

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Пожалуйста, измените onKeyDown на onMouseDown и selectionHandler на () => selectionHandler(arayValue), как показано ниже:

return (
    <DropdownContainer>
      <DropdownInput
        placeholder={"search"}
        onChange={e => setDropValue(e.target.value)}
        value={dropValue}
      />
      <DropdownBlock>
        {array.map(arayValue => (
          <DropDownSpan onMouseDown={() => selectionHandler(arayValue)}>{arayValue}</DropDownSpan>
        ))}
      </DropdownBlock>
    </DropdownContainer>
  );
0 голосов
/ 03 февраля 2020

Это сработало для меня, чтобы получить значение selectionHandler():

<DropDownSpan onClick={() => selectionHandler(arayValue)}>{arayValue}</DropDownSpan>

Вы можете увидеть, как это работает, если вы console.log(value) в selectionHandler. Тем не менее, вы в настоящее время регистрируете dropValue сразу после установки его с помощью setDropValue. Поскольку это обновление происходит асинхронно, переменная не может быть установлена ​​до вызова console.log().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...