В моем приложении есть классический шаблон Flux, использующий fluxible
. value
входа привязано к пропсу моего компонента, а его onChange
вызывает действие, которое, в свою очередь, обновляет хранилище, которое, в свою очередь, передает проп в мой компонент:
class MyComponent extends React.Component {
handleChange(e) {
this.context.executeAction(persist, { value: e.target.value });
}
render() {
return <input value={this.props.value} onChange={this.handleChange.bind(this)}/>;
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что когда хранилище испускает изменение и новое значение передается моему компоненту, это вызывает его повторную визуализацию, и позиция курсора ввода теряется (перемещается в конец).
Я знаю, что могу создать собственный метод shouldComponentUpdate
для своего компонента, но сделать это довольно сложно и определенно утомительно, поскольку я предполагаю, что это очень часто встречающийся шаблон.
Существует ли хорошо зарекомендовавшая себя схема предотвращения повторного рендеринга для контролируемых входных данных?
this.props.value
. Просто мысль. - person Jason Rice   schedule 02.02.2016