Могу ли я указать отдельный обработчик onClick для значка TextField?
Используя компонент, можно ли указать отдельный обработчик onClick для значка оформления?
Код ниже не работает:
<TextField
{...passwordTextFieldProps}
iconProps={{ iconName: 'RedEye', onClick: () => this.setState({ some new state }) }}
/>
1 ответ
Спустя два года после того, как автор этой статьи, у меня возник тот же вопрос, и я нашел лучшее решение.
В
onClick
событие доступно на значке, но по умолчанию отключено (pointerEvents
установлен на
none
).
С некоторым стилем это работает (также я добавил форму курсора, чтобы значок выглядел "кликабельным", но это необязательно).
<TextField iconProps={{ iconName: 'RedEye', style: { pointerEvents: "auto", cursor: "pointer" }, onClick: () => { ... } }} />
Один из вариантов, который следует рассмотреть, - это визуализация иконки отдельно:
<div style={{display:'flex', alignItems: 'center'}}>
<TextField />
<Icon iconName="RedEye" style={{left:'-25px',position:'relative'}} onClick={()=> console.log("Clicked")} />
</div>