Code Monkey home page Code Monkey logo

Comments (3)

vitalybaev avatar vitalybaev commented on August 29, 2024

Добрый день!

Да, вы можете в пропсах компонента прокинуть коллбек renderOption - функция, которая принимает один аргумент - объект подсказки, и должна вернуть любой JSX, который будет отображаться

import React, { useRef } from 'react';
import { AddressSuggestions } from 'react-dadata';

// Как то так, можно возвращать любую верстку, например с расширенными данными, как угодно
<AddressSuggestions
  renderOption={(suggestion) => (<span>{suggestion.data.city}</span>)}
/>

Единственный момент, что в таком случае не будет доступно выделение совпадений.
Вообще можно воспользоваться пакетом react-words-highlight, который внутренне используется для этого, но в настоящий момент в колбеке нет информации какой запрос вообще сейчас введен в поле. Но - можно его хранить в стейте, сохраняя его в inputProps={{ onChange: (event) => { /** Тут сохраняем значение из поля ввода */} }}

from react-dadata.

alexbom avatar alexbom commented on August 29, 2024

Я выразился неточно. Опции в выпадающем списке выглядят хорошо. Но необходимо убрать лишнее в выбранном элементе, когда Select уже свёрнут. Когда опция выбрана, хотелось бы видеть только название города.

from react-dadata.

vitalybaev avatar vitalybaev commented on August 29, 2024

Тогда сложнее, просто менять значение в поле вводе не очень хорошая идея поскольку при редактировании значения его текст используется для подгрузки вариантов
Как вариант решения - хранить в стейте выбранную подсказку, подписаться на события инпута onBlur и onFocus.
При onBlur - используя метод setInputValue ставим туда нужное обрезанное значение. При onFocus - возвращаем полное. Это чисто мысли вслух, но вроде бы может сработать в вашем варианте.

А саму подсказку нужно полную с адресом? Не подойдет ограничение области поиска от самой DaData?

from react-dadata.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.