当前位置: 首页 > 知识库问答 >
问题:

多个客户不同的ID

子车高歌
2023-03-14

这里的反应初学者,英语不是我的母语所以很抱歉有错误,这里我有一个输入,按钮和下拉(选择选项),'value'代表id和'text'代表customer,这里我有一个问题,当用户点击customer'james'(我有两个)它会选择这两个,如何纠正它应该选择点击的那个?如果没有同名用户,则所有操作都正常,我的代码:

import React, { useState } from "react";
import ReactDOM from "react-dom";
import "antd/dist/antd.css";
import { Button, AutoComplete } from "antd";
import { CloseOutlined } from "@ant-design/icons";

export default function EventsSection() {
  const autoControl = React.createRef();
  const defaultOptions = [
    { value: "1", text: "Nicholas" },
    { value: "2", text: "Alex" },
    { value: "3", text: "Putin" },
    { value: "4", text: "Biden" },
    { value: "5", text: "Peka" },
    { value: "6", text: "James" },
    { value: "7", text: "James" }
  ];
  const [options, setOptions] = useState(defaultOptions);
  const [selectedOption, setSelectedOption] = useState("");
  const [dropdownOpen, setDropdownOpen] = useState(true);
  const [selectedValue, setSelectedValue] = useState("");

  const { Option } = AutoComplete;

  const changeHandler = (text) => {
    setSelectedOption(text);
    if (options.filter((f) => f.text === text).length) {
      setSelectedValue(options.filter((f) => f.text === text)[0].value);
    } else {
      setOptions(defaultOptions);
      setSelectedValue("");
    }
    if (!text || !text.length) {
      setDropdownOpen(false);
      autoControl.current.blur();
    }
  };

  function handleClick() {
    const id = selectedValue;
    console.log(`value: ${id}, text: ${selectedOption}`);
    //history.push(`/customer/${id}`);
  }

  function onClear() {
    changeHandler("");
  }

  function onFocusChange() {
    if (!dropdownOpen) setDropdownOpen(true);
  }

  function onSearch(value) {
    setOptions(
      defaultOptions.filter((f) =>
        f.text.toLowerCase().includes(value.toLowerCase())
      )
    );
  }

  return (
    <div>
      {/* when found in search i want this button take to  'onChange' address also*/}
      <button disabled={!selectedValue} onClick={handleClick}>
        click me when found in search
      </button>
      <AutoComplete
        ref={autoControl}
        open={dropdownOpen}
        style={{ width: 200 }}
        placeholder="Search..."
        listHeight={220}
        onSearch={(e) => onSearch(e)}
        onChange={changeHandler}
        value={selectedOption}
        onFocus={onFocusChange}
      >
        {options.map((option) => (
          <Option key={option.value} value={option.text}>
            {option.text}
          </Option>
        ))}
      </AutoComplete>
      <Button
        disabled={!selectedValue}
        onClick={onClear}
        type="primary"
        icon={<CloseOutlined />}
      />
    </div>
  );
}

ReactDOM.render(<EventsSection />, document.getElementById("container"));

共有1个答案

葛修筠
2023-03-14

嘿,所以,为了解决这个问题,我认为您需要做的只是将选项组件的值设置为选项列表中的唯一键。

例如:

<Option key={option.value} value={option.value}>
  {option.text}
</Option>

目标应该是让您的自动完成显示option.text,但根据option.value设置值和状态。

 类似资料:
  • 是否可以配置多个< code >安全配置? 使用s可以为OAuth客户端设置Client-ID和Secret: 对于单个客户来说,它的工作就像魅力一样: 我找不到任何方法将安全方案与不同的安全配置相关联。

  • 问题内容: RMI是否自己处理多个客户端?即 是否可以同时使用多个客户端的服务器功能? 如果没有,我该怎么做? 如果是,它如何工作?每次 调用 都会创建一个新线程吗?如果一个客户端阻止了该功能,那么下一个客户端会发生什么?等等 问题答案: 是 这个怎么运作?每次调用都会创建一个新线程吗?如果一个客户端阻止了该功能,那么下一个客户端会发生什么?等等 它为每个客户端连接创建一个线程。 如果一个客户端调

  • 正如twilio所说的同时拨号 您可以在动词中使用几个和名词来同时拨打多个电话号码和客户端。第一个接听电话的人将与呼叫者连接,而其余的呼叫尝试将被挂断。 我实现这个功能与描述相同,但是当有人拨打我的twilio号码时,我传递了上面的twiml响应,并且每个客户端都收到传入呼叫,但是当所有客户端之一通过.accept()方法选择呼叫时,没有任何反应,并且呼叫不断为所有客户端响铃。 但是,如果只有一个

  • 问题内容: 我有大约5个表,其中的公用字段为“ serid”。我想在所有这些表中计算不同的用户ID。某些用户ID可能出现在这些表中的大约2个中。但是我想将5个表中不同用户ID的UNION数在一起。我可以用ff代码在一张表中计算不同的用户ID。我希望能够从所有表中计数。 问题答案: 用一个 与相比,标准将从结果集中删除重复的值。您的陈述看起来像 从w3schools 默认情况下,UNION运算符仅选

  • 我需要让客户能够建立许多连接。我使用Netty 4.0。不幸的是,所有现有的示例都没有显示如何创建大量连接。 这是正确的决定吗?还是会更好?

  • 我刚刚把我的Netty 3软件转换成5,我遇到了一个问题。只有一个客户,一切都很好。我可以使用两个解码器(它们可以正常切换)并允许我登录。 当我尝试连接另一个客户端时,无论第一个客户端是否仍然连接,都会出现问题。第一个客户端保持连接绝对正常,但第二个客户端根本无法连接(不通过第一个解码器)。 这是我的引导程序: 第一解码器: http://pastebin.com/9FWzXSVE 第二个解码器: