Есть один способ, которым вы можете выполнить это в Chrome (и, возможно, в некоторых других браузерах, но Chrome - большой преступник). Используйте window.getSelection()
для извлечения объекта выделения из текущего ввода, а затем тест расширяет выбор назад (или вперед) и видит, изменяется ли значение toString()
выбора. Если это не так, курсор находится в конце ввода, и вы можете перейти к следующему входу. Если это так, вы должны затем отменить операцию, чтобы отменить выбор.
s = window.getSelection();
len = s.toString().length;
s.modify('extend', 'backward', 'character');
if (len < s.toString().length) {
// It's not at the beginning of the input, restore previous selection
s.modify('extend', 'forward', 'character');
} else {
// It's at the end, you can move to the previous input
}
Я получил эту идею из этого ответа SO: https://stackoverflow.com/a/24247942
Порядок аргументов, которые вы передаете в метод connect
, неверен, он ожидает, что mapStateToProps
первым и mapDispatchToProps
будут вторым параметром. Таким образом, ваш код должен быть export default connect(mapStateToProps, mapDispatchToProps)(LoginComponent);
Вот подпись
connect([mapStateToProps], [mapDispatchToProps], [mergeProps], [options])