Я пишу оболочку для React Toolbox для ClojureScript/Reagent под названием Набор инструментов для реагентов. В React Toolbox есть компонент ввода, который используется следующим образом:
<Input type='text'
label='Name'
name='name' value={this.state.name}
onChange={this.handleChange.bind(this, 'name')}
maxLength={16 } />
Я создал компонент Reagent вокруг этого компонента React следующим образом:
(def input (reagent/adapt-react-class (.-Input js/ReactToolbox)))
чтобы я мог использовать его так:
[reagent-toolbox.core/input {:label "Name"
:name "name"
:type "text"
:value @name
:max-length 16
:on-change (fn [value event] (reset! name value))}]
Но в отличие от версии React, в версии Reagent каждое нажатие клавиши на входе вызывает повторную визуализацию компонента, в результате чего курсор переходит в конец. Вы можете испытать этот эффект здесь: http://regent-toolbox-docs.dashman.tech/input
Что я делаю неправильно? Что мне не хватает?