Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

228
Views
Autocompletar usando Antd en Reactjs

Estoy creando opciones de autocompletado en la aplicación de reacción y generé el campo de autocompletado con una lista de opciones.

Ejemplo de trabajo:

Editar react-antd-input-autocompletar (bifurcado)

Lista de opciones:

 const options = [ { label: "hello", value: "1" }, { label: "codesandbox", value: "2" }, { label: "react", value: "3" }, { label: "nodejs", value: "4" }, { label: "java", value: "5" }, { label: "antd", value: "6" }, { label: "dependency", value: "7" }, { label: "less", value: "8" } ];

Aquí, si el usuario selecciona la react de los datos, entonces la entrada tiene el valor de 3 .

Expectativa:

La expectativa es que el campo de entrada debe tener el texto como react , pero el valor seleccionado debe ser 3 .

Entonces, para la visualización del usuario, debe estar en texto y el valor de fondo será un número.

Referido a esta publicación El autocompletado de React Antd v4 muestra el valor seleccionado en lugar de la etiqueta al seleccionar una opción , pero no ayuda de ninguna manera.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Bueno, AutoComplete es un componente de input . Lo que necesitas es select con search . El ejemplo que proporcionaste se puede implementar un poco para que funcione como quieras. Es posible que deba hacer algunas modificaciones. El siguiente código es solo para demostrar cómo puede cambiarlo, no estoy seguro de si se ejecutará sin errores o no.

 import { Select } from 'antd'; const { Option } = Select; function onChange(value) { console.log(`selected ${value}`); } const options = [ { label: "hello", value: "1" }, { label: "codesandbox", value: "2" }, { label: "react", value: "3" }, { label: "nodejs", value: "4" }, { label: "java", value: "5" }, { label: "antd", value: "6" }, { label: "dependency", value: "7" }, { label: "less", value: "8" } ]; function onSearch(val) { console.log('search:', val); } ReactDOM.render( <Select showSearch placeholder="Select a person" optionFilterProp="children" onChange={onChange} onSearch={onSearch} filterOption={(input, option) => option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 } > { options.map((option => <Option value={option.value}>{option.hellop}</Option>)) } </Select>, mountNode, );
about 4 years ago · Juan Pablo Isaza Report

0

Como respondió @TheWhiteFang, una solución para resolver su problema es usar el componente Select con showSearch prop, pero si desea usar AutoComplete entre sí, otra solución podría ser definir dos estados separados, un estado para el valor de entrada y otro estado para la opción seleccionada de AutoComplete . Luego, podría administrar sus estados mediante onChange y onSelect props. como esto:

 const Complete = () => { const [selectedOption, setSelectedOption] = React.useState(''); const [inputValue, setInputValue] = React.useState(''); const onSelect = (data, option) => { setSelectedOption(option); setInputValue(option.label); }; const onChange = (data, option) => { setInputValue(data); setSelectedOption(option); // to remove selected option when user types something wich doesn't match with any option }; return ( <AutoComplete value={inputValue} options={options} autoFocus={true} style={{width: 200}} filterOption={(inputValue, option) => option.label.toUpperCase().indexOf(inputValue.toUpperCase()) !== -1 } onSelect={onSelect} onChange={onChange} /> ); };

Tal vez necesite hacer algunos cambios en el ejemplo anterior según sus requisitos, de todos modos puede encontrar el ejemplo anterior aquí en stackblitz .

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!