#javascript #reactjs #antd
#javascript #reactjs #antd
Вопрос:
Я использую antd(3.23.4)
. У меня есть Select
компонент, и я хочу избежать его закрытия при нажатии на один из его параметров (элемент ввода). Однако удалось избежать его закрытия, не могу сосредоточиться на элементе ввода, когда я его щелкнул. Я думаю, это потому, что я обернул его в div и использовал a preventDefault()
в div, который немедленно останавливается, когда я нажимаю на элемент ввода. Я искал некоторые проблемы на github antd, но безуспешно. Вот пример моего кода:
<Select
dropdownRender={menu => (
<React.Fragment>
{menu}
<div onMouseDown={e => e.preventDefault()}>
<Input type="number" key="others" addonBefore="Others: " />
</div>
</React.Fragment>
)} >
<Option key="bar" value="bar">
bar
</Option>
</Select>
Проблема здесь в том, что я не могу щелкнуть / сфокусировать ввод. Чтобы я мог печатать в нем.
Нужна помощь. Пожалуйста, сообщите. Заранее благодарю вас за тех, кто ответит 🙂
Комментарии:
1. вы пытаетесь использовать multiselect?
2. Привет, ДИЛИП, я не пытаюсь использовать multiselect.
3. Итак, одиночный выбор, но меню должно быть постоянным, не является
4. да, меню должно быть постоянным. Поэтому, если мне не нужна эта
bar
опция, я могу ввести в элемент ввода то значение, которое я хочу.5. Тогда в этом случае меню всегда будет открыто, и при этом условии оно будет закрыто
Ответ №1:
У нас есть size=""
атрибут в select component (тег) в html Select Attributes. Это гарантирует, что количество опций внутри поля выбора отображается одновременно, поэтому вы можете сделать это следующим образом….
<select
id="select"
name="catagory"
onChange={(e) => handleChange(e)}
onClick={() => addSize()}
>
*.....Your Options....*
</select>
const addSize = () => {
const selectBox = document.getElementById("select");
selectBox.addEventListener("click", selectBox.setAttribute("size", 10));
};
Комментарии:
1. спасибо за ответ на Yog. Я думаю, что размер здесь не проблема? Поскольку я правильно его отрисовал. моя проблема здесь в том, что я не могу щелкнуть элемент ввода в компоненте выбора.