首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当我使用鼠标点击时,我的onClick功能可以工作,但当我使用键盘时,它不工作。有什么建议可以解决这个问题吗?

当我使用鼠标点击时,我的onClick功能可以工作,但当我使用键盘时,它不工作。有什么建议可以解决这个问题吗?
EN

Stack Overflow用户
提问于 2019-08-08 13:54:19
回答 1查看 505关注 0票数 0

因此,基本上,我使用的是react-places-autocomplete,并且当用户点击其中一个地址建议时,我尝试调用click函数。当我使用鼠标时,它可以工作,但当我使用键盘时,它不工作。请检查我的代码

我试过onSelect onKeyPressed,它们不起作用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React, { useState, useEffect } from "react";

import "./Location.css";

import PlacesAutocomplete, { geocodeByAddress,getLatLng } from "react-places-autocomplete";

import { Paper, TextField } from "@material-ui/core";

function AddLocation(props) {

    //here is the function

    const handleClick = () => {

        console.log("the function is called ");

    };

    return (
    <Paper elevation="5">

      <div style={{ padding: 10 }}>

        <PlacesAutocomplete
          value={address}
          onChange={handleChange}
          onClick={handleChange}
        >
          {({ getInputProps, suggestions, getSuggestionItemProps, load }) => (
            <>
              <TextField
                id="outlined-name"
                label="Address"
                error={errors.address}
                value={address}
                helperText={errors.address}
                name="name"
                style={{ width: "100%" }}
                variant="outlined"
                {...getInputProps({
                  placeholder: "Search Places ...",
                  className: "location-search-input"
                })}
              />
              <div className="autocomplete-dropdown-container">
                {load && <div>Loading...</div>}
                {suggestions.map(suggestion => {
                  const className = suggestion.active
                    ? "suggestion-item--active"
                    : "suggestion-item";
                  const style = suggestion.active
                    ? {
                        backgroundColor: "#fafafa",
                        cursor: "pointer"
                      }
                    : {
                        backgroundColor: "#ffffff",
                        cursor: "pointer"
                      };
                  return (
                    <div
                      {...getSuggestionItemProps(suggestion, {
                        className,
                        style
                      })}
                    >
                      {/* /////////////////here is my onClick//////////////  */}
                      <div onClick={handleClick}>
                        <span>{suggestion.description}</span>
                      </div>
                      {/* ///////////////////////////////////////////////////////// */}
                    </div>
                  );
                })}
              </div>
            </>
          )}
        </PlacesAutocomplete>
      </div>
    </Paper>
    );
}

export default AddLocation;

我希望当我单击其中一个建议时,鼠标单击和键盘单击会调用我的函数

EN

回答 1

Stack Overflow用户

发布于 2019-08-09 12:00:48

react-places-autocomplete repo上,有人遇到了和你一样的问题:here。解决方案:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const inputProps = getInputProps({ placeholder: locationPlaceholder });

const onKeyDown = (event) => {
  const suggestionsOpen = !!suggestions.length; // find out if suggestions are active or not
  inputProps.onKeyDown(event); // do the normal onKeyDown callback
  if(!suggestionsOpen && event.keyCode === 13){ // if this is enter key, submit form
    this.submitForm(); 
  }
}

<input type="text" {...inputProps} onKeyDown={onKeyDown} />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57414278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文